I have a piece of code that looks like this:

debug("Before");

for (int i = 0; i < values.length; i++)
  programValueEntityHome.create(us, attribute, values[i]);

debug("After");

For some reason an ejbLoad is sneaking into the picture.  As you can see
from the following output, when "Before" prints the size of certain
collection 1 (because I just added something to it), then before the
ejbCreate is called in responce to programValueEntityHome.create(...) an
ejbLoad sneaks in.  The ejbLoad, clears the collection again because it
refreshes from disk.  Now during the operation and after, the collection
remains EMPTY.

Before Object: ProgramEntityBean_PersistenceManager812@5bfb5d values
collection: [com.indnet.common.model.base.EntityKey@268 id: 616] size: 1
ejbLoad: ProgramEntityBean_PersistenceManager812@5bfb5d
During create of value Object:
ProgramEntityBean_PersistenceManager812@5bfb5d values collection: [] size: 0
After Object: ProgramEntityBean_PersistenceManager812@5bfb5d values
collection: [] size: 0

Does any one have any ideas why would an ejbLoad sneak in?  The entire
operation is done in a single transaction.  I am puzzled as to why this
might be happening?

This all is occuring during the "create" operation here is a stack trace
when excpetion occurs because the collection is EMPTY:

javax.ejb.EJBException: Attribute: Actors not a valid attribute for program:
3971
        at
com.indnet.symbiosis.model.entity.program.ProgramEntityBean.setValues(Progra
mEntityBean.java:344)
        at
com.indnet.symbiosis.model.entity.program.ProgramEntityBean.createDefaultVal
uesFor(ProgramEntityBean.java:196)
        at
com.indnet.symbiosis.model.entity.program.ProgramEntityBean.addProgramType(P
rogramEntityBean.java:157)
        at
com.indnet.symbiosis.model.entity.program.ProgramEntityBean.ejbPostCreate(Pr
ogramEntityBean.java:63)
        at
ProgramEntityHome_EntityHomeWrapper813.create(ProgramEntityHome_EntityHomeWr
apper813.java:806)
        at
com.indnet.symbiosis.service.programmanagement.ProgramManagementServiceBean.
createProgram(ProgramManagementServiceBean.java:50)
        at
ProgramManagementService_StatelessSessionBeanWrapper26.createProgram(Program
ManagementService_StatelessSessionBeanWrapper26.java:70)
        at
com.indnet.symbiosis.client.jsp.admin.programadmin.pagegen.beans.ProgramCrea
teBean.initialize(ProgramCreateBean.java:106)
        at com.slsideas.pagegen.beans.Bean.processRequest(Bean.java:106)

Thanks.
-AP_


Reply via email to