0

I am getting the below stack trace of the error I am getting.

String index out of range: 0
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    at java.lang.String.charAt(String.java:658)
    at org.hibernate.type.descriptor.java.CharacterTypeDescriptor.wrap(CharacterTypeDescriptor.java:80)
    at org.hibernate.type.descriptor.java.CharacterTypeDescriptor.wrap(CharacterTypeDescriptor.java:34)
    at org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$2.doExtract(VarcharTypeDescriptor.java:61)
    at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:249)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:229)
    at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:330)
    at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2265)
    at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1527)
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1455)
    at org.hibernate.loader.Loader.getRow(Loader.java:1355)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:611)
    at org.hibernate.loader.Loader.doQuery(Loader.java:829)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
    at org.hibernate.loader.Loader.doList(Loader.java:2533)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
    at org.hibernate.loader.Loader.list(Loader.java:2271)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452)
    at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268)
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102).

I am using hibernate-core-3.6.0-Final jar in my code. When I searched in internet, it is suggested to modify the piece of code as below:

    if ( String.class.isInstance( value ) ) {
             final String str = (String) value;
            return Character.valueOf( str.charAt(0) );
          }

should be replaced with

    if ( String.class.isInstance( value ) ) {
             final String str = (String) value;
             if ( str.length() == 0 ) {
                return null;
             }
             return Character.valueOf( str.charAt(0) );
          }

.

I tried to do so. But unable to do it. So Shall I downgrade to hibernate-core-3.5.6-Final jar to avoid the said exception ?. Will it cause any issue ?.

MD Ruhul Amin
  • 4,386
  • 1
  • 22
  • 37
  • Current hibernet version is :`'5.4.24.Final'`, instead of down-grading try upgrading the library. https://mvnrepository.com/artifact/org.hibernate/hibernate-core – MD Ruhul Amin Nov 19 '20 at 14:01
  • my project will not support latest version of jar. Or else can you please advice me to avoid the error ? – Chandruma Sampath Nov 19 '20 at 14:03
  • In that case check this post: https://stackoverflow.com/questions/39615788/how-to-change-the-hibernate-charactertypedescriptor-to-handle-empty-column-value – MD Ruhul Amin Nov 19 '20 at 14:05

0 Answers0