Jira issue created... https://issues.apache.org/jira/browse/OPENJPA-462
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Monday, December 03, 2007 6:32 PM To: [email protected] Subject: Re: OptimisticException question Hi, That's a bug; OpenJPA is not translating exceptions thrown during JTA-managed commits. Can you open a JIRA issue for it? -Patrick On 11/30/07, Ajay Aggarwal <[EMAIL PROTECTED]> wrote: > Patrick, > > Here is the full stack trace. > > -Ajay > > <Nov 30, 2007 9:50:53 AM EST> <Error> <EJB> <BEA-010026> <Exception > occurred during commit of transaction Name=[EJB > com.covergence.soa.covapi.sesscfg.SessionConfigBean.getSessionConfig(com > .covergence.soa.utils.SerJavaSipMessageType)],Xid=BEA1-00001267875BE126C > EB7(64273527),Status=Rolled back. [Reason=<2|false|0.9.7> > org.apache.openjpa.util.OptimisticException: Optimistic locking errors > were detected when flushing to the data store. The following objects > may have been concurrently modified in another transaction: > [com.covergence.soa.covapi.userpolicy.User-com.covergence.soa.covapi.use > rpolicy.User-1]],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since > begin=2,seconds > left=30,SCInfo[ajayProduction+AdminServer]=(state=rolledback),properties > =({weblogic.transaction.name=[EJB > com.covergence.soa.covapi.sesscfg.SessionConfigBean.getSessionConfig(com > .covergence.soa.utils.SerJavaSipMessageType)]}),OwnerTransactionManager= > ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=AdminServer+172.30. > 0.202:7001+ajayProduction+t3+admin+7001+,XAResources={WLStore_ajayProduc > tion__WLS_AdminServer},NonXAResources={})],CoordinatorURL=AdminServer+17 > 2.30.0.202:7001+ajayProduction+t3+admin+7001+): > weblogic.transaction.RollbackException: Optimistic locking errors were > detected when flushing to the data store. The following objects may > have been concurrently modified in another transaction: > [com.covergence.soa.covapi.userpolicy.User-com.covergence.soa.covapi.use > rpolicy.User-1] > at > weblogic.transaction.internal.TransactionImpl.throwRollbackException(Tra > nsactionImpl.java:1818) > at > weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Serve > rTransactionImpl.java:333) > at > weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransac > tionImpl.java:227) > at > weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(BaseRemoteO > bject.java:606) > at > weblogic.ejb.container.internal.StatelessRemoteObject.postInvoke1(Statel > essRemoteObject.java:57) > at > weblogic.ejb.container.internal.BaseRemoteObject.postInvokeTxRetry(BaseR > emoteObject.java:426) > at > com.covergence.soa.covapi.sesscfg.SessionConfigBean_4w7egw_SessionConfig > Impl.getSessionConfig(SessionConfigBean_4w7egw_SessionConfigImpl.java:76 > ) > at > jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Lja > va.lang.Object;)Ljava.lang.Object;(Unknown Source) > at > java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)L > java.lang.Object;(Unknown Source) > at > weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBus > inessIntfProxy.java:63) > at > $Proxy67.getSessionConfig(Lcom.covergence.soa.utils.SerJavaSipMessageTyp > e;)Lcom.covergence.ws.callouts.SessionConfigType;(Unknown Source) > at > com.covergence.soa.ws.server.CallOutsImpl.getSessionConfigType(CallOutsI > mpl.java:46) > at > com.covergence.soa.ws.server.CallOutsImplBase.getSessionPolicy(CallOutsI > mplBase.java:238) > at > jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Lja > va.lang.Object;)Ljava.lang.Object;(Unknown Source) > at > java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)L > java.lang.Object;(Unknown Source) > at weblogic.wsee.jaxws.WLSInvoker.invoke(WLSInvoker.java:50) > at weblogic.wsee.jaxws.WLSInvoker.invoke(WLSInvoker.java:42) > at > com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHan > dler.java:247) > at > com.sun.xml.ws.server.sei.SEIInvokerPipe.process(SEIInvokerPipe.java:97) > at > weblogic.wsee.jaxws.MonitoringPipe.process(MonitoringPipe.java:98) > at > com.sun.xml.ws.protocol.soap.ServerMUPipe.process(ServerMUPipe.java:62) > at > com.sun.xml.ws.server.WSEndpointImpl$1.process(WSEndpointImpl.java:139) > at > com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter > .java:153) > at > com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:235) > at > com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapt > er.java:97) > at > weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:36) > .> > javax.ejb.EJBException: nested exception is: <2|false|0.9.7> > org.apache.openjpa.util.OptimisticException: Optimistic locking errors > were detected when flushing > to the data store. The following objects may have been concurrently > modified in another transaction: > [com.covergence.soa.covapi.userpolicy.User-com.covergence. > soa.covapi.userpolicy.User-1]<2|false|0.9.7> > org.apache.openjpa.util.OptimisticException: Optimistic locking errors > were detected when flushing to the data store. The following objects > may have been concurrently modified in another transaction: > [com.covergence.soa.covapi.userpolicy.User-com.covergence.soa.covapi.use > rpolicy.User-1] > at > org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2 > 120) > at > org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1970) > at > org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1868) > at > org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:17 > 86) > at > weblogic.transaction.internal.ServerSCInfo.doBeforeCompletion(ServerSCIn > fo.java:1212) > at > weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(ServerS > CInfo.java:1190) > at > weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(Serve > rSCInfo.java:118) > at > weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAndCh > ain(ServerTransactionImpl.java:1299) > at > weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(Ser > verTransactionImpl.java:2111) > at > weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Serve > rTransactionImpl.java:260) > at > weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransac > tionImpl.java:227) > at > weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(BaseRemoteO > bject.java:606) > at > weblogic.ejb.container.internal.StatelessRemoteObject.postInvoke1(Statel > essRemoteObject.java:57) > at > weblogic.ejb.container.internal.BaseRemoteObject.postInvokeTxRetry(BaseR > emoteObject.java:426) > at > com.covergence.soa.covapi.sesscfg.SessionConfigBean_4w7egw_SessionConfig > Impl.getSessionConfig(SessionConfigBean_4w7egw_SessionConfigImpl.java:76 > ) > at > jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Lja > va.lang.Object;)Ljava.lang.Object;(Unknown Source) > at > java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)L > java.lang.Object;(Unknown Source) > at > weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBus > inessIntfProxy.java:63) > at > $Proxy67.getSessionConfig(Lcom.covergence.soa.utils.SerJavaSipMessageTyp > e;)Lcom.covergence.ws.callouts.SessionConfigType;(Unknown Source) > at > com.covergence.soa.ws.server.CallOutsImpl.getSessionConfigType(CallOutsI > mpl.java:46) > Caused by: <2|false|0.9.7> org.apache.openjpa.util.OptimisticException: > An optimistic lock violation was detected when flushing object instance > "com.covergence.soa.covapi.userpolicy.User-com.covergence.soa.covapi.use > rpolicy.User-1" to the data store. This indicates that the object was > concurrently modified in anothertransaction. > FailedObject: > com.covergence.soa.covapi.userpolicy.User-com.covergence.soa.covapi.user > policy.User-1 > at > kodo.jdbc.kernel.BatchingPreparedStatementManager.checkUpdate(BatchingPr > eparedStatementManager.java:354) > at > kodo.jdbc.kernel.BatchingPreparedStatementManager.flushInternal(Batching > PreparedStatementManager.java:208) > at > kodo.jdbc.kernel.BatchingPreparedStatementManager.flush(BatchingPrepared > StatementManager.java:188) > at > kodo.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.j > ava:90) > at > org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdat > eManager.java:86) > at > org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdat > eManager.java:69) > at > org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.j > ava:511) > at > org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreMa > nager.java:127) > at > org.apache.openjpa.datacache.DataCacheStoreManager.flush(DataCacheStoreM > anager.java:506) > at > org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreMa > nager.java:127) > at > org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1970) > at > org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1868) > at > org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:17 > 86) > at > weblogic.transaction.internal.ServerSCInfo.doBeforeCompletion(ServerSCIn > fo.java:1212) > at > weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(ServerS > CInfo.java:1190) > at > weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(Serve > rSCInfo.java:118) > at > weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAndCh > ain(ServerTransactionImpl.java:1299) > at > weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(Ser > verTransactionImpl.java:2111) > at > weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Serve > rTransactionImpl.java:260) > at > weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransac > tionImpl.java:227) > at > weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(BaseRemoteO > bject.java:606) > at > weblogic.ejb.container.internal.StatelessRemoteObject.postInvoke1(Statel > essRemoteObject.java:57) > at > weblogic.ejb.container.internal.BaseRemoteObject.postInvokeTxRetry(BaseR > emoteObject.java:426) > javax.ejb.EJBException: nested exception is: <2|false|0.9.7> > org.apache.openjpa.util.OptimisticException: Optimistic locking errors > were detected when flushing to the data store. The following objects > may have been concurrently modified in another transaction: > [com.covergence.soa.covapi.userpolicy.User-com.covergence.soa.covapi.use > rpolicy.User-1] > at > weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBus > inessIntfProxy.java:78) > at > $Proxy67.getSessionConfig(Lcom.covergence.soa.utils.SerJavaSipMessageTyp > e;)Lcom.covergence.ws.callouts.SessionConfigType;(Unknown Source) > at > com.covergence.soa.ws.server.CallOutsImpl.getSessionConfigType(CallOutsI > mpl.java:46) > at > com.covergence.soa.ws.server.CallOutsImplBase.getSessionPolicy(CallOutsI > mplBase.java:238) > at > jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Lja > va.lang.Object;)Ljava.lang.Object;(Unknown Source) > at > java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)L > java.lang.Object;(Unknown Source) > at weblogic.wsee.jaxws.WLSInvoker.invoke(WLSInvoker.java:50) > at weblogic.wsee.jaxws.WLSInvoker.invoke(WLSInvoker.java:42) > at > com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHan > dler.java:247) > at > com.sun.xml.ws.server.sei.SEIInvokerPipe.process(SEIInvokerPipe.java:97) > at > weblogic.wsee.jaxws.MonitoringPipe.process(MonitoringPipe.java:98) > at > com.sun.xml.ws.protocol.soap.ServerMUPipe.process(ServerMUPipe.java:62) > at > com.sun.xml.ws.server.WSEndpointImpl$1.process(WSEndpointImpl.java:139) > at > com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter > .java:153) > at > com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:235) > at > com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapt > er.java:97) > at > weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:36) > at > weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:218) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > at > weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(St > ubSecurityHelper.java:226) > at > weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityH > elper.java:124) > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:2 > 83) > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:1 > 75) > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.r > un(WebAppServletContext.java:3370) > at > weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSu > bject.java:321) > at > weblogic.security.service.SecurityManager.runAs(Lweblogic.security.acl.i > nternal.AuthenticatedSubject;Lweblogic.security.acl.internal.Authenticat > edSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(Unknown > Source) > at > weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServ > letContext.java:2117) > at > weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletCont > ext.java:2023) > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: Friday, November 30, 2007 3:03 AM > To: [email protected] > Subject: Re: OptimisticException question > > Hi, > > Do you have the full exception stack? That's just the outer exception. > > -Patrick > > On 11/29/07, Ajay Aggarwal <[EMAIL PROTECTED]> wrote: > > Well, I am seeing OptimisticException and not OptimisticLockException. > > What's the difference between the two? Below is my trace, if that's > any > > hint as to why I am not getting OptimisticLockException. My > environment > > is BEA WLS 6.1. > > > > Thanks. > > > > > > > > ####<Nov 27, 2007 5:18:57 PM EST> <Error> <EJB> <aaggarwal> > > <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: > > 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> > > <1196201937032> <BEA-010026> <Exception occurred during commit of > > transaction Name=[EJB > > > com.covergence.soa.covapi.sesscfg.SessionConfigBean.getSessionConfig(com > > > .covergence.soa.utils.SerJavaSipMessageType)],Xid=BEA1-000076951D12E126C > > EB7(46083264),Status=Rolled back. [Reason=<2|false|0.9.7> > > org.apache.openjpa.util.OptimisticException: Optimistic locking errors > > were detected when flushing to the data store. The following objects > > may have been concurrently modified in another transaction: > > > [com.covergence.soa.covapi.userpolicy.User-com.covergence.soa.covapi.use > > rpolicy.User-1]],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds > since > > begin=2,seconds > > > left=29,SCInfo[ajayProduction+AdminServer]=(state=rolledback),properties > > =({weblogic.transaction.name=[EJB > > > com.covergence.soa.covapi.sesscfg.SessionConfigBean.getSessionConfig(com > > > .covergence.soa.utils.SerJavaSipMessageType)]}),OwnerTransactionManager= > > > ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=AdminServer+172.30. > > 0.202:7001+ajayProduction+t3+admin+7001+, > > > XAResources={WLStore_ajayProduction__WLS_AdminServer},NonXAResources={}) > > > ],CoordinatorURL=AdminServer+172.30.0.202:7001+ajayProduction+t3+admin+7 > > 001+): weblogic.transaction.RollbackException: Optimistic locking > errors > > were detected when flushing to the data store. The following objects > > may have been concurrently modified in another transaction: > > > [com.covergence.soa.covapi.userpolicy.User-com.covergence.soa.covapi.use > > rpolicy.User-1] > > at > > > weblogic.transaction.internal.TransactionImpl.throwRollbackException(Tra > > nsactionImpl.java:1818) > > at > > > weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Serve > > rTransactionImpl.java:333) > > at > > > weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransac > > tionImpl.java:227) > > at > > > weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(BaseRemoteO > > bject.java:606) > > at > > > weblogic.ejb.container.internal.StatelessRemoteObject.postInvoke1(Statel > > essRemoteObject.java:57) > > at > > > weblogic.ejb.container.internal.BaseRemoteObject.postInvokeTxRetry(BaseR > > emoteObject.java:426) > > at > > > com.covergence.soa.covapi.sesscfg.SessionConfigBean_4w7egw_SessionConfig > > > Impl.getSessionConfig(SessionConfigBean_4w7egw_SessionConfigImpl.java:76 > > ) > > at > > > jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Lja > > va.lang.Object;)Ljava.lang.Object;(Unknown Source) > > at > > > java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)L > > java.lang.Object;(Unknown Source) > > at > > > weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBus > > inessIntfProxy.java:63) > > at > > > $Proxy132.getSessionConfig(Lcom.covergence.soa.utils.SerJavaSipMessageTy > > pe;)Lcom.covergence.ws.callouts.SessionConfigType;(Unknown Source) > > at > > > com.covergence.soa.ws.server.CallOutsImpl.getSessionConfigType(CallOutsI > > mpl.java:46) > > at > > > com.covergence.soa.ws.server.CallOutsImplBase.getSessionPolicy(CallOutsI > > mplBase.java:233) > > at > > > jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Lja > > va.lang.Object;)Ljava.lang.Object;(Unknown Source) > > at > > > java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)L > > java.lang.Object;(Unknown Source) > > at weblogic.wsee.jaxws.WLSInvoker.invoke(WLSInvoker.java:50) > > at weblogic.wsee.jaxws.WLSInvoker.invoke(WLSInvoker.java:42) > > at > > > com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHan > > dler.java:247) > > at > > > com.sun.xml.ws.server.sei.SEIInvokerPipe.process(SEIInvokerPipe.java:97) > > at > > weblogic.wsee.jaxws.MonitoringPipe.process(MonitoringPipe.java:98) > > at > > > com.sun.xml.ws.protocol.soap.ServerMUPipe.process(ServerMUPipe.java:62) > > at > > > com.sun.xml.ws.server.WSEndpointImpl$1.process(WSEndpointImpl.java:139) > > at > > > com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter > > .java:153) > > at > > com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:235) > > at > > > com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapt > > er.java:97) > > at > > > weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:36) > > .> > > > > > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, November 28, 2007 9:24 PM > > To: [email protected] > > Subject: Re: OptimisticException question > > > > Hi, > > > > The internal exception should be re-wrapped in an > > OptimisticLockException. > > > > -Patrick > > > > On 11/28/07, Adam Hardy <[EMAIL PROTECTED]> wrote: > > > Ajay Aggarwal on 28/11/07 17:00, wrote: > > > > Hi, > > > > > > > > > > > > > > > > I wanted to know why openJPA uses > > > > "org.apache.openjpa.util.OptimisticException" and not > > > > "javax.persistence.OptimisticLockException". In my code I wanted > to > > > > catch this exception and take appropriate action. However I didn't > > want > > > > my code to become dependent on OpenJPA. I wanted to limit OpenJPA > > > > dependency to persistence.xml > > > > > > > > Am I missing something? > > > > > > Hi Ajay, > > > > > > > > > org.apache.openjpa.persistence.OptimisticLockException > > > > > > extends > > > > > > javax.persistence.OptimisticLockException > > > > > > I would suggest that the circumstances under which > OptimisticException > > is > > > thrown > > > would give a clue as to why it and not OptimisticLockException is > > being > > > used. > > > > > > > > > regards > > > Adam > > > > > > > > > -- > > Patrick Linskey > > 202 669 5907 > > > > > -- > Patrick Linskey > 202 669 5907 > -- Patrick Linskey 202 669 5907
