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