It looks like the lazy loading has changed in 0.9.6 from 0.9.5.3. I'm getting an reflection based exception trying to load a class that has a property who in turn has a lazy loaded collection. The lazy loaded property on the Project class has the following mapping/java declaration:
//marked transient since the castor persistent collection is not serializeable protected transient Collection phases = new ArrayList(); <field name="phases" type="com.apex.chronos.app.project.Phase" lazy="true" collection="collection"> <sql many-key="PROJECT_ID"/> <bind-xml name="phases" node="element" transient="false"/> </field> What do I need to do to get lazy loading working in this release? Thanks, Jon Jan-15-2005 5:56:56:020 PM, PST [ERROR] (org.exolab.castor.persist.SingleProxy:?) -- error on enhance class com.apex.chronos.app.project.Project net.sf.cglib.core.CodeGenerationException: java.lang.IllegalAccessException-->Class org.exolab.castor.persist.SingleProxy can not access a member of class com.apex.chronos.app.project.BasicProject with modifiers "protected" at net.sf.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:235) at net.sf.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:220) at net.sf.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:216) at net.sf.cglib.proxy.Enhancer.createUsingReflection(Enhancer.java:566) at net.sf.cglib.proxy.Enhancer.firstInstance(Enhancer.java:493) at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:220) at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:368) at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:280) at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:597) at org.exolab.castor.persist.SingleProxy.getProxy(ClassMolder.java:3243) at org.exolab.castor.persist.ClassMolder.load(ClassMolder.java:776) at org.exolab.castor.persist.LockEngine.load(LockEngine.java:361) at org.exolab.castor.persist.TransactionContext.load(TransactionContext.java:698) at org.exolab.castor.persist.QueryResults.fetch(QueryResults.java:229) at org.exolab.castor.jdo.engine.OQLQueryImpl$OQLEnumeration.hasMore(OQLQueryImpl.java:602) at org.exolab.castor.jdo.engine.OQLQueryImpl$OQLEnumeration.hasMore(OQLQueryImpl.java:585) at com.apex.chronos.app.AbstractBusinessObject.executeFind(AbstractBusinessObject.java:841) at com.apex.chronos.app.AbstractBusinessObject.executeFind(AbstractBusinessObject.java:817) at com.apex.chronos.app.AbstractBusinessObject.executeFind(AbstractBusinessObject.java:809) at com.apex.chronos.app.authorization.ProjectRoleAssignment.findByPersonIdAndProjectId(ProjectRoleAssignment.java:121) at com.apex.chronos.app.authorization.AuthorizationGuard.getProjectRoleAssignments(AuthorizationGuard.java:332) at com.apex.chronos.app.authorization.AuthorizationGuard.getActiveProjectRoleAssignments(AuthorizationGuard.java:347) at com.apex.chronos.app.authorization.AuthorizationGuard.hasProjectAuthorization(AuthorizationGuard.java:701) at com.apex.chronos.app.authorization.AuthorizationGuard.isAuthorized(AuthorizationGuard.java:125) at com.apex.chronos.app.authorization.AuthorizationGuard.isAuthorizedToView(AuthorizationGuard.java:74) at com.apex.chronos.app.AbstractBusinessObject.internalFindByPrimaryKey(AbstractBusinessObject.java:900) at com.apex.chronos.app.AbstractBusinessObject.internalFindByPrimaryKey(AbstractBusinessObject.java:880) at com.apex.chronos.app.project.BasicProject.findByPrimaryKey(BasicProject.java:216) at com.apex.chronos.ui.integration.ExportTimeSheetAction.constructExportableTimeSheet(ExportTimeSheetAction.java:281) at com.apex.chronos.ui.integration.ExportTimeSheetAction.exportToQBOE(ExportTimeSheetAction.java:158) at com.apex.chronos.ui.integration.ExportTimeSheetAction.doPerform(ExportTimeSheetAction.java:78) at com.apex.chronos.ui.AbstractAction.execute(AbstractAction.java:161) ----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-dev