failed to lazily initialize a collection of role
triathlon98 Jul 18, 2006 11:23 AMI have the error below which happens during a call to e EJB3 SFSB. There is no explicit rollback happening in the code and the session is (obviously) managed by the container. I am using JBoss 4.0.4GA.
2006-07-17 06:02:05,374 ERROR [org.hibernate.LazyInitializationException] failed to lazily initialize a collection of role: org.ictrace.server.pm.DMWeightGroupTotalBean.batches, no session or session was closed org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: org.ictrace.server.pm.DMWeightGroupTotalBean.batches, no session or session was closed at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358) at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350) at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:343) at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86) at org.hibernate.collection.PersistentBag.iterator(PersistentBag.java:246) at package.WeightMediatorBaseEx.addWGTBatch(WeightMediatorBaseEx.java:359) at ...
The code where the exception is invoced looks like this :
private void addWGTBatch( DMWeightGroupTotalBean obj, String batchRef ) throws UnidConstraintViolation { if ( obj == null || batchRef == null ) return; try { Collection<DMWeightGroupTotal_BatchesBean> batches = obj.getBatches(); if ( batches == null ) { batches = new ArrayList<DMWeightGroupTotal_BatchesBean>(); obj.setBatches( batches ); } // check if the object already exists for ( DMWeightGroupTotal_BatchesBean bb : batches ) // error is reported on this line { if ( batchRef.equals( bb.getBatches() ) ) return; } batches.add( new DMWeightGroupTotal_BatchesBean( batchRef ) ); obj.modified(); } catch ( Exception ex ) { throw new UnidConstraintViolation( UCV_PROBLEM_WHEN_ADDING_BATCH_TO_THE_TOTAL_LINE, batchRef, ex ); } }
Does anybody have any idea what is causing this error and how I can fix / work around it?
Thanks,
Joachim