cancel
Showing results for 
Search instead for 
Did you mean: 

CMP EJB: Transaction Problem? (1-n Relation)

Former Member
0 Kudos

Hello Group,

Im using CMP two Beans with a 1-n Relationship (Type Collection). When I assign the childs to the parent during the creation I get an Exception.

(Applikation is WebDynpro - BeanModel)

When I try to add a new Collection like this:


PackingListHeaderEJBLocal plh = home.create();
...
java.util.Vector items = new java.util.Vector();
// (ArrayList here is the same..)

Iterator it = plis.iterator();
//Input from JavaBean

while (it.hasNext()) {
					         PackingListItemBean item = (PackingListItemBean)
it.next();
					PackingListItemEJBLocal pli = itemHome.create();
pli.setContractPosition(item.getContractPosition());
...
items.add(item);
}
				
plh.setPackingListItems( items );				

.. I get an com.sap.engine.services.ejb.exceptions.BaseEJBException: Exception in method at.vai.edilog.persistence.PackingListHeaderEJBLocalLocalObjectImpl10.setPackingListItems(java.util.Collection).

(Details see below)

when I try to get the Collection from the parent first and then just add the childs like


Iterator it = plis.iterator();
//Input from JavaBean

Collection items = plh.getPackingListItems();

while (it.hasNext()) {
					         PackingListItemBean item = (PackingListItemBean)
it.next();
					PackingListItemEJBLocal pli = itemHome.create();
pli.setContractPosition(item.getContractPosition());
...
items.add(item);
}

I get Exception:

com.sap.engine.services.ejb.exceptions.BaseIllegalStateException: The collection is obtained by another transaction.

Any ideas? I dont really get it...

Thanks you VERY much!!

Simon

The Exceptions in Detail:

<b>Base Exception</b>

com.sap.engine.services.ejb.exceptions.BaseEJBException: Exception in method at.vai.edilog.persistence.PackingListHeaderEJBLocalLocalObjectImpl10.setPackingListItems(java.util.Collection).

at at.vai.edilog.persistence.PackingListHeaderEJBLocalLocalObjectImpl10.setPackingListItems(PackingListHeaderEJBLocalLocalObjectImpl10.java:6764)

at at.vai.edilog.bean.PackingListHeaderBean.execute(PackingListHeaderBean.java:156)

at at.vai.edilog.webdynpro.createcomp.CreateComponent.executePackingListBeanmodel(CreateComponent.java:264)

at at.vai.edilog.webdynpro.createcomp.wdp.InternalCreateComponent.executePackingListBeanmodel(InternalCreateComponent.java:377)

at at.vai.edilog.webdynpro.createcomp.CreateStep_3.onActionExecuteTest(CreateStep_3.java:206)

at at.vai.edilog.webdynpro.createcomp.wdp.InternalCreateStep_3.wdInvokeEventHandler(InternalCreateStep_3.java:305)

at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)

at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleAction(WebDynproMainTask.java:101)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleActionEvent(WebDynproMainTask.java:304)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:649)

at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:59)

at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:248)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:154)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:116)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:55)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:159)

Caused by: com.sap.engine.services.ejb.exceptions.BaseIllegalArgumentException: Incorrect argument type at.vai.edilog.bean.PackingListItemBean for this collection.

at com.sap.engine.services.ejb.entity.pm.multiple.BasicCollection.verify(BasicCollection.java:88)

at com.sap.engine.services.ejb.entity.pm.multiple.ReferenceCollection.innerAddAll(ReferenceCollection.java:312)

at com.sap.engine.services.ejb.entity.pm.multiple.ReferenceCollection.outerAddAll(ReferenceCollection.java:140)

at at.vai.edilog.persistence.PackingListHeaderEJBBean10PM.setPackingListItems(PackingListHeaderEJBBean10PM.java:437)

at at.vai.edilog.persistence.PackingListHeaderEJBLocalLocalObjectImpl10.setPackingListItems(PackingListHeaderEJBLocalLocalObjectImpl10.java:6745)

... 31 more

Caused by: java.lang.ClassCastException

at com.sap.engine.services.ejb.entity.pm.multiple.BasicCollection.verify(BasicCollection.java:86)

... 35 more

com.sap.engine.services.ejb.exceptions.BaseIllegalArgumentException: Incorrect argument type at.vai.edilog.bean.PackingListItemBean for this collection.

at com.sap.engine.services.ejb.entity.pm.multiple.BasicCollection.verify(BasicCollection.java:88)

at com.sap.engine.services.ejb.entity.pm.multiple.ReferenceCollection.innerAddAll(ReferenceCollection.java:312)

at com.sap.engine.services.ejb.entity.pm.multiple.ReferenceCollection.outerAddAll(ReferenceCollection.java:140)

at at.vai.edilog.persistence.PackingListHeaderEJBBean10PM.setPackingListItems(PackingListHeaderEJBBean10PM.java:437)

at at.vai.edilog.persistence.PackingListHeaderEJBLocalLocalObjectImpl10.setPackingListItems(PackingListHeaderEJBLocalLocalObjectImpl10.java:6745)

at at.vai.edilog.bean.PackingListHeaderBean.execute(PackingListHeaderBean.java:156)

at at.vai.edilog.webdynpro.createcomp.CreateComponent.executePackingListBeanmodel(CreateComponent.java:264)

at at.vai.edilog.webdynpro.createcomp.wdp.InternalCreateComponent.executePackingListBeanmodel(InternalCreateComponent.java:377)

at at.vai.edilog.webdynpro.createcomp.CreateStep_3.onActionExecuteTest(CreateStep_3.java:206)

at at.vai.edilog.webdynpro.createcomp.wdp.InternalCreateStep_3.wdInvokeEventHandler(InternalCreateStep_3.java:305)

at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)

at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleAction(WebDynproMainTask.java:101)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleActionEvent(WebDynproMainTask.java:304)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:649)

at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:59)

at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:248)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:154)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:116)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:55)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:159)

Caused by: java.lang.ClassCastException

at com.sap.engine.services.ejb.entity.pm.multiple.BasicCollection.verify(BasicCollection.java:86)

... 35 more

===========================================================

===========================================================

<b>Transaction Exception</b>

com.sap.engine.services.ejb.exceptions.BaseIllegalStateException: The collection is obtained by another transaction.

at com.sap.engine.services.ejb.entity.pm.multiple.ReferenceCollection.checkLocker(ReferenceCollection.java:351)

at com.sap.engine.services.ejb.entity.pm.multiple.ReferenceCollection.add(ReferenceCollection.java:547)

at at.vai.edilog.bean.PackingListHeaderBean.execute(PackingListHeaderBean.java:155)

at at.vai.edilog.webdynpro.createcomp.CreateComponent.executePackingListBeanmodel(CreateComponent.java:264)

at at.vai.edilog.webdynpro.createcomp.wdp.InternalCreateComponent.executePackingListBeanmodel(InternalCreateComponent.java:377)

at at.vai.edilog.webdynpro.createcomp.CreateStep_3.onActionExecuteTest(CreateStep_3.java:206)

at at.vai.edilog.webdynpro.createcomp.wdp.InternalCreateStep_3.wdInvokeEventHandler(InternalCreateStep_3.java:305)

at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)

at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleAction(WebDynproMainTask.java:101)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleActionEvent(WebDynproMainTask.java:304)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:649)

at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:59)

at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:248)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:154)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:116)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:55)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:159)

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

replace items.add(item) with items.add(pli)

regards

Jan Hempel

Former Member
0 Kudos

Thanks - I've seen it just a minute ago by myself - sorry for the posting.. 🐵

Of course you get the points anyway (my fault..)

Answers (0)