Jon,

can you please file a bug report at http://bugzilla.exolab.org, and I'll look 
into this issue tomorrow. Actually, I have not changed lazy loading for 
collections, but only introduced support for lazy loading for 1:1 relations. 
But it looks to me like Castor is getting confused a bug about where to apply 
which method.

Thanks
Werner

On Sat, 15 Jan 2005 18:23:40 -0800 (PST), Jon Wilmoth wrote:

>
>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
>



----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to