|
From: <leg...@at...> - 2003-09-05 02:32:31
|
Message:
The following issue has been closed.
Resolver: Gavin King
Date: Thu, 4 Sep 2003 9:31 PM
I don't see this as a bug. This is how CharacterType has worked forever.
If you are representing a null, use a SQL null.
---------------------------------------------------------------------
View the issue:
http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-310
Here is an overview of the issue:
---------------------------------------------------------------------
Key: HB-310
Summary: CharacterType.get(ResultSet rs, String name) on zero length String
Type: Bug
Status: Closed
Priority: Blocker
Resolution: REJECTED
Project: Hibernate2
Components:
core
Versions:
2.0.2
2.0.3
Assignee:
Reporter: Tim Schafer
Created: Thu, 4 Sep 2003 11:03 AM
Updated: Thu, 4 Sep 2003 9:31 PM
Environment: Sun JDK 1.4.2
Mysql 4.0.13
Description:
The get method of CharacterType is calling
java.lang.String.charAt(0)
on a String instance that has zero length
This resulted rom trying to load a mapped object from
a Mysql 4.0.13 record that has a blank column
Sep 4, 2003 8:55:27 AM net.sf.hibernate.impl.IteratorImpl next
SEVERE: could not get next result
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at net.sf.hibernate.type.CharacterType.get(CharacterType.java:19)
at net.sf.hibernate.type.NullableType.nullSafeGet(NullableType.java:59)
at net.sf.hibernate.type.NullableType.nullSafeGet(NullableType.java:51)
at net.sf.hibernate.type.ComponentType.nullSafeGet(ComponentType.java:139)
at net.sf.hibernate.collection.CollectionPersister.readElement(CollectionPersister.java:377)
at net.sf.hibernate.collection.Set.readFrom(Set.java:242)
at net.sf.hibernate.loader.Loader.doFind(Loader.java:175)
at net.sf.hibernate.loader.Loader.loadCollection(Loader.java:602)
at net.sf.hibernate.loader.CollectionLoader.initialize(CollectionLoader.java:82)
at net.sf.hibernate.impl.SessionImpl.initialize(SessionImpl.java:2897)
at net.sf.hibernate.collection.PersistentCollection.getInitialValue(PersistentCollection.java:128)
at net.sf.hibernate.type.PersistentCollectionType.getCollection(PersistentCollectionType.java:74)
at net.sf.hibernate.type.PersistentCollectionType.resolveIdentifier(PersistentCollectionType.java:177)
at net.sf.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java:1959)
at net.sf.hibernate.loader.Loader.doFind(Loader.java:196)
at net.sf.hibernate.loader.Loader.loadEntity(Loader.java:587)
at net.sf.hibernate.loader.EntityLoader.load(EntityLoader.java:42)
at net.sf.hibernate.persister.EntityPersister.load(EntityPersister.java:396)
at net.sf.hibernate.impl.SessionImpl.doLoad(SessionImpl.java:1889)
at net.sf.hibernate.impl.SessionImpl.doLoadByClass(SessionImpl.java:1757)
at net.sf.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:1716)
at net.sf.hibernate.type.ManyToOneType.resolveIdentifier(ManyToOneType.java:62)
at net.sf.hibernate.type.EntityType.nullSafeGet(EntityType.java:109)
at net.sf.hibernate.impl.IteratorImpl.postNext(IteratorImpl.java:57)
at net.sf.hibernate.impl.IteratorImpl.next(IteratorImpl.java:70)
at test.TestHibernate.main(TestHibernate.java:94)
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at net.sf.hibernate.type.CharacterType.get(CharacterType.java:19)
at net.sf.hibernate.type.NullableType.nullSafeGet(NullableType.java:59)
at net.sf.hibernate.type.NullableType.nullSafeGet(NullableType.java:51)
at net.sf.hibernate.type.ComponentType.nullSafeGet(ComponentType.java:139)
at net.sf.hibernate.collection.CollectionPersister.readElement(CollectionPersister.java:377)
at net.sf.hibernate.collection.Set.readFrom(Set.java:242)
at net.sf.hibernate.loader.Loader.doFind(Loader.java:175)
at net.sf.hibernate.loader.Loader.loadCollection(Loader.java:602)
at net.sf.hibernate.loader.CollectionLoader.initialize(CollectionLoader.java:82)
at net.sf.hibernate.impl.SessionImpl.initialize(SessionImpl.java:2897)
at net.sf.hibernate.collection.PersistentCollection.getInitialValue(PersistentCollection.java:128)
at net.sf.hibernate.type.PersistentCollectionType.getCollection(PersistentCollectionType.java:74)
at net.sf.hibernate.type.PersistentCollectionType.resolveIdentifier(PersistentCollectionType.java:177)
at net.sf.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java:1959)
at net.sf.hibernate.loader.Loader.doFind(Loader.java:196)
at net.sf.hibernate.loader.Loader.loadEntity(Loader.java:587)
at net.sf.hibernate.loader.EntityLoader.load(EntityLoader.java:42)
at net.sf.hibernate.persister.EntityPersister.load(EntityPersister.java:396)
at net.sf.hibernate.impl.SessionImpl.doLoad(SessionImpl.java:1889)
at net.sf.hibernate.impl.SessionImpl.doLoadByClass(SessionImpl.java:1757)
at net.sf.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:1716)
at net.sf.hibernate.type.ManyToOneType.resolveIdentifier(ManyToOneType.java:62)
at net.sf.hibernate.type.EntityType.nullSafeGet(EntityType.java:109)
at net.sf.hibernate.impl.IteratorImpl.postNext(IteratorImpl.java:57)
at net.sf.hibernate.impl.IteratorImpl.next(IteratorImpl.java:70)
at test.TestHibernate.main(TestHibernate.java:94)
rethrown as net.sf.hibernate.LazyInitializationException: Hibernate lazy instantiation problem: String index out of range: 0
at net.sf.hibernate.impl.IteratorImpl.next(IteratorImpl.java:81)
at test.TestHibernate.main(TestHibernate.java:94)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at net.sf.hibernate.type.CharacterType.get(CharacterType.java:19)
at net.sf.hibernate.type.NullableType.nullSafeGet(NullableType.java:59)
at net.sf.hibernate.type.NullableType.nullSafeGet(NullableType.java:51)
at net.sf.hibernate.type.ComponentType.nullSafeGet(ComponentType.java:139)
at net.sf.hibernate.collection.CollectionPersister.readElement(CollectionPersister.java:377)
at net.sf.hibernate.collection.Set.readFrom(Set.java:242)
at net.sf.hibernate.loader.Loader.doFind(Loader.java:175)
at net.sf.hibernate.loader.Loader.loadCollection(Loader.java:602)
at net.sf.hibernate.loader.CollectionLoader.initialize(CollectionLoader.java:82)
at net.sf.hibernate.impl.SessionImpl.initialize(SessionImpl.java:2897)
at net.sf.hibernate.collection.PersistentCollection.getInitialValue(PersistentCollection.java:128)
at net.sf.hibernate.type.PersistentCollectionType.getCollection(PersistentCollectionType.java:74)
at net.sf.hibernate.type.PersistentCollectionType.resolveIdentifier(PersistentCollectionType.java:177)
at net.sf.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java:1959)
at net.sf.hibernate.loader.Loader.doFind(Loader.java:196)
at net.sf.hibernate.loader.Loader.loadEntity(Loader.java:587)
at net.sf.hibernate.loader.EntityLoader.load(EntityLoader.java:42)
at net.sf.hibernate.persister.EntityPersister.load(EntityPersister.java:396)
at net.sf.hibernate.impl.SessionImpl.doLoad(SessionImpl.java:1889)
at net.sf.hibernate.impl.SessionImpl.doLoadByClass(SessionImpl.java:1757)
at net.sf.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:1716)
at net.sf.hibernate.type.ManyToOneType.resolveIdentifier(ManyToOneType.java:62)
at net.sf.hibernate.type.EntityType.nullSafeGet(EntityType.java:109)
at net.sf.hibernate.impl.IteratorImpl.postNext(IteratorImpl.java:57)
at net.sf.hibernate.impl.IteratorImpl.next(IteratorImpl.java:70)
... 1 more
---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
|