I think I've fixed this problem now. (But I did it without first reproducing the bug.)
Mark, would you do me a favor, please: (1) check the fix works (2) add a regression test to FooBarTest that Thanks.... Gavin ----- Original Message ----- From: "Mark Woon" <[EMAIL PROTECTED]> Cc: "Hibernate Mailing List" <[EMAIL PROTECTED]> Sent: Saturday, October 12, 2002 11:28 AM Subject: Re: [Hibernate] Failure to lazily initialize a collection > Mark Woon wrote: > > > Here's the mapping I'm using for the set: > > > > <set role="referenceSequences" table="ReferenceSequenceGeneAssoc" > > lazy="true" cascade="all"> > > <key column="geneId" type="string" /> > > <many-to-many column="referenceSequenceId" > > class="org.pharmgen.db.DbReferenceSequence" /> > > </set> > > > And if I change it to lazy="false," I get: > > java.lang.NullPointerException > at cirrus.hibernate.LockMode.greaterThan(LockMode.java:30) > at cirrus.hibernate.impl.SessionImpl.lock(SessionImpl.java:1121) > at cirrus.hibernate.impl.SessionImpl.doLoad(SessionImpl.java:1412) > at > cirrus.hibernate.impl.SessionImpl.doLoadByClass(SessionImpl.java:1314) > at > cirrus.hibernate.impl.SessionImpl.internalLoadOneToOne(SessionImpl.java:1273 ) > at > cirrus.hibernate.type.OneToOneType.resolveIdentifier(OneToOneType.java:68) > at > cirrus.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java:1456) > at cirrus.hibernate.loader.Loader.doFind(Loader.java:144) > at cirrus.hibernate.loader.Loader.loadCollection(Loader.java:448) > at > cirrus.hibernate.loader.CollectionLoader.initialize(CollectionLoader.java:67 ) > at > cirrus.hibernate.impl.SessionImpl.initialize(SessionImpl.java:2222) > at > cirrus.hibernate.collections.PersistentCollection.getInitialValue(Persistent Collection.java:69) > at > cirrus.hibernate.type.PersistentCollectionType.getCollection(PersistentColle ctionType.java:69) > at > cirrus.hibernate.type.PersistentCollectionType.resolveIdentifier(PersistentC ollectionType.java:198) > at > cirrus.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java:1456) > at cirrus.hibernate.loader.Loader.doFind(Loader.java:171) > at cirrus.hibernate.loader.Loader.loadEntity(Loader.java:435) > at cirrus.hibernate.loader.EntityLoader.load(EntityLoader.java:61) > at > cirrus.hibernate.persister.EntityPersister.load(EntityPersister.java:406) > at cirrus.hibernate.impl.SessionImpl.doLoad(SessionImpl.java:1440) > at > cirrus.hibernate.impl.SessionImpl.doLoadByClass(SessionImpl.java:1314) > at cirrus.hibernate.impl.SessionImpl.load(SessionImpl.java:1253) > at misc.Test.test(Test.java:61) > at misc.Test.main(Test.java:40) > > With the 1.1.4b build I get: > > cirrus.hibernate.TransientObjectException: You tried to lock a transient > instance > at cirrus.hibernate.impl.SessionImpl.lock(SessionImpl.java:1113) > at cirrus.hibernate.impl.SessionImpl.doLoad(SessionImpl.java:1404) > at > cirrus.hibernate.impl.SessionImpl.doLoadByClass(SessionImpl.java:1306) > at > cirrus.hibernate.impl.SessionImpl.internalLoadOneToOne(SessionImpl.java:1265 ) > at > cirrus.hibernate.type.OneToOneType.resolveIdentifier(OneToOneType.java:68) > at > cirrus.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java:1448) > at cirrus.hibernate.loader.Loader.doFind(Loader.java:144) > at cirrus.hibernate.loader.Loader.loadCollection(Loader.java:448) > at > cirrus.hibernate.loader.CollectionLoader.initialize(CollectionLoader.java:67 ) > at > cirrus.hibernate.impl.SessionImpl.initialize(SessionImpl.java:2213) > at > cirrus.hibernate.collections.PersistentCollection.getInitialValue(Persistent Collection.java:69) > at > cirrus.hibernate.type.PersistentCollectionType.getCollection(PersistentColle ctionType.java:69) > at > cirrus.hibernate.type.PersistentCollectionType.resolveIdentifier(PersistentC ollectionType.java:198) > at > cirrus.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java:1448) > at cirrus.hibernate.loader.Loader.doFind(Loader.java:171) > at cirrus.hibernate.loader.Loader.loadEntity(Loader.java:435) > at cirrus.hibernate.loader.EntityLoader.load(EntityLoader.java:61) > at > cirrus.hibernate.persister.EntityPersister.load(EntityPersister.java:666) > at cirrus.hibernate.impl.SessionImpl.doLoad(SessionImpl.java:1432) > at > cirrus.hibernate.impl.SessionImpl.doLoadByClass(SessionImpl.java:1306) > at cirrus.hibernate.impl.SessionImpl.load(SessionImpl.java:1245) > at misc.Test.test(Test.java:61) > at misc.Test.main(Test.java:40) > > > BTW, all this works with 1.3! > > -Mark > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > hibernate-devel mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/hibernate-devel ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ hibernate-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/hibernate-devel