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

Reply via email to