Return-Path: Delivered-To: apmail-openjpa-dev-archive@www.apache.org Received: (qmail 25171 invoked from network); 6 Dec 2007 14:57:12 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 6 Dec 2007 14:57:12 -0000 Received: (qmail 82445 invoked by uid 500); 6 Dec 2007 14:57:00 -0000 Delivered-To: apmail-openjpa-dev-archive@openjpa.apache.org Received: (qmail 82413 invoked by uid 500); 6 Dec 2007 14:57:00 -0000 Mailing-List: contact dev-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list dev@openjpa.apache.org Received: (qmail 82404 invoked by uid 99); 6 Dec 2007 14:57:00 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Dec 2007 06:57:00 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Dec 2007 14:56:40 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 05819714243 for ; Thu, 6 Dec 2007 06:56:43 -0800 (PST) Message-ID: <2240153.1196953002994.JavaMail.jira@brutus> Date: Thu, 6 Dec 2007 06:56:42 -0800 (PST) From: "Ajay Aggarwal (JIRA)" To: dev@openjpa.apache.org Subject: [jira] Created: (OPENJPA-462) OptimisticException is thrown instead of OptimisticLockException MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org OptimisticException is thrown instead of OptimisticLockException ---------------------------------------------------------------- Key: OPENJPA-462 URL: https://issues.apache.org/jira/browse/OPENJPA-462 Project: OpenJPA Issue Type: Bug Affects Versions: 0.9.7 Environment: BEA WebLogic Server 10 Reporter: Ajay Aggarwal In my application, i wanted to catch "javax.persistence.OptimisticLockExcep= tion" and take appropriate action. However I am seeing that instead "org.ap= ache.openjpa.util.OptimisticException" is being thrown. I don't want my cod= e to become dependent on OpenJPA and would like to see OptimisticLockExcept= ion thrown. While discussing in the OpenJPA forums, Patrick suggested that I create a J= IRA issue for this since its a bug. You can see the discussion in the forum under title "OptimisticException qu= estion" few days ago. Below is the stack trace from my application. org.apache.openjpa.util.OptimisticException: Opti= mistic locking errors were detected when flushing to the data store. The f= ollowing objects may have been concurrently modified in another transaction= : [com.covergence.soa.covapi.userpolicy.User-com.covergence.soa.covapi.user= policy.User-1]],numRepliesOwedMe=3D0,numRepliesOwedOthers=3D0,seconds since= begin=3D2,seconds left=3D30,SCInfo[ajayProduction+AdminServer]=3D(state=3D= rolledback),properties=3D({weblogic.transaction.name=3D[EJB com.covergence.= soa.covapi.sesscfg.SessionConfigBean.getSessionConfig(com.covergence.soa.ut= ils.SerJavaSipMessageType)]}),OwnerTransactionManager=3DServerTM[ServerCoor= dinatorDescriptor=3D(CoordinatorURL=3DAdminServer+172.30.0.202:7001+ajayPro= duction+t3+admin+7001+,XAResources=3D{WLStore_ajayProduction__WLS_AdminServ= er},NonXAResources=3D{})],CoordinatorURL=3DAdminServer+172.30.0.202:7001+aj= ayProduction+t3+admin+7001+): weblogic.transaction.RollbackException: Optim= istic locking errors were detected when flushing to the data store. The fo= llowing objects may have been concurrently modified in another transaction:= [com.covergence.soa.covapi.userpolicy.User-com.covergence.soa.covapi.userp= olicy.User-1] at weblogic.transaction.internal.TransactionImpl.throwRollbackExcep= tion(TransactionImpl.java:1818) at weblogic.transaction.internal.ServerTransactionImpl.internalComm= it(ServerTransactionImpl.java:333) at weblogic.transaction.internal.ServerTransactionImpl.commit(Serve= rTransactionImpl.java:227) at weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(Bas= eRemoteObject.java:606) at weblogic.ejb.container.internal.StatelessRemoteObject.postInvoke= 1(StatelessRemoteObject.java:57) at weblogic.ejb.container.internal.BaseRemoteObject.postInvokeTxRet= ry(BaseRemoteObject.java:426) at com.covergence.soa.covapi.sesscfg.SessionConfigBean_4w7egw_Sessi= onConfigImpl.getSessionConfig(SessionConfigBean_4w7egw_SessionConfigImpl.ja= va:76) at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Obj= ect;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source) at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Ob= ject;I)Ljava.lang.Object;(Unknown Source) at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(R= emoteBusinessIntfProxy.java:63) at $Proxy67.getSessionConfig(Lcom.covergence.soa.utils.SerJavaSipMe= ssageType;)Lcom.covergence.ws.callouts.SessionConfigType;(Unknown Source) at com.covergence.soa.ws.server.CallOutsImpl.getSessionConfigType(C= allOutsImpl.java:46) at com.covergence.soa.ws.server.CallOutsImplBase.getSessionPolicy(C= allOutsImplBase.java:238) at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Obj= ect;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source) at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Ob= ject;I)Ljava.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(EndpointM= ethodHandler.java:247) at com.sun.xml.ws.server.sei.SEIInvokerPipe.process(SEIInvokerPipe.= java:97) at weblogic.wsee.jaxws.MonitoringPipe.process(MonitoringPipe.java:9= 8) at com.sun.xml.ws.protocol.soap.ServerMUPipe.process(ServerMUPipe.j= ava:62) at com.sun.xml.ws.server.WSEndpointImpl$1.process(WSEndpointImpl.ja= va:139) at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(Htt= pAdapter.java:153) at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.jav= a:235) at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(Serv= letAdapter.java:97) at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.j= ava:36) .> javax.ejb.EJBException: nested exception is: <2|false|0.9.7> org.apache.ope= njpa.util.OptimisticException: Optimistic locking errors were detected when= flushing to the data store. The following objects may have been concurrently modifi= ed in another transaction: [com.covergence.soa.covapi.userpolicy.User-com.c= overgence. soa.covapi.userpolicy.User-1]<2|false|0.9.7> org.apache.openjpa.util.Optimi= sticException: 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.coverge= nce.soa.covapi.userpolicy.User-1] at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImp= l.java:2120) at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1970) at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1= 868) at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl= .java:1786) at weblogic.transaction.internal.ServerSCInfo.doBeforeCompletion(Se= rverSCInfo.java:1212) at weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions= (ServerSCInfo.java:1190) at weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndCha= in(ServerSCInfo.java:118) at weblogic.transaction.internal.ServerTransactionImpl.localPrePrep= areAndChain(ServerTransactionImpl.java:1299) at weblogic.transaction.internal.ServerTransactionImpl.globalPrePre= pare(ServerTransactionImpl.java:2111) at weblogic.transaction.internal.ServerTransactionImpl.internalComm= it(ServerTransactionImpl.java:260) at weblogic.transaction.internal.ServerTransactionImpl.commit(Serve= rTransactionImpl.java:227) at weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(Bas= eRemoteObject.java:606) at weblogic.ejb.container.internal.StatelessRemoteObject.postInvoke= 1(StatelessRemoteObject.java:57) at weblogic.ejb.container.internal.BaseRemoteObject.postInvokeTxRet= ry(BaseRemoteObject.java:426) at com.covergence.soa.covapi.sesscfg.SessionConfigBean_4w7egw_Sessi= onConfigImpl.getSessionConfig(SessionConfigBean_4w7egw_SessionConfigImpl.ja= va:76) at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Obj= ect;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source) at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Ob= ject;I)Ljava.lang.Object;(Unknown Source) at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(R= emoteBusinessIntfProxy.java:63) at $Proxy67.getSessionConfig(Lcom.covergence.soa.utils.SerJavaSipMe= ssageType;)Lcom.covergence.ws.callouts.SessionConfigType;(Unknown Source) at com.covergence.soa.ws.server.CallOutsImpl.getSessionConfigType(C= allOutsImpl.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.c= overgence.soa.covapi.userpolicy.User-com.covergence.soa.covapi.userpolicy.U= ser-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.userpolicy.User-1 at kodo.jdbc.kernel.BatchingPreparedStatementManager.checkUpdate(Ba= tchingPreparedStatementManager.java:354) at kodo.jdbc.kernel.BatchingPreparedStatementManager.flushInternal(= BatchingPreparedStatementManager.java:208) at kodo.jdbc.kernel.BatchingPreparedStatementManager.flush(Batching= PreparedStatementManager.java:188) at kodo.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateM= anager.java:90) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(Abstr= actUpdateManager.java:86) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(Abstr= actUpdateManager.java:69) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreM= anager.java:511) at org.apache.openjpa.kernel.DelegatingStoreManager.flush(Delegatin= gStoreManager.java:127) at org.apache.openjpa.datacache.DataCacheStoreManager.flush(DataCac= heStoreManager.java:506) at org.apache.openjpa.kernel.DelegatingStoreManager.flush(Delegatin= gStoreManager.java:127) at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1970) at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1= 868) at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl= .java:1786) at weblogic.transaction.internal.ServerSCInfo.doBeforeCompletion(Se= rverSCInfo.java:1212) at weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions= (ServerSCInfo.java:1190) at weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndCha= in(ServerSCInfo.java:118) at weblogic.transaction.internal.ServerTransactionImpl.localPrePrep= areAndChain(ServerTransactionImpl.java:1299) at weblogic.transaction.internal.ServerTransactionImpl.globalPrePre= pare(ServerTransactionImpl.java:2111) at weblogic.transaction.internal.ServerTransactionImpl.internalComm= it(ServerTransactionImpl.java:260) at weblogic.transaction.internal.ServerTransactionImpl.commit(Serve= rTransactionImpl.java:227) at weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(Bas= eRemoteObject.java:606) at weblogic.ejb.container.internal.StatelessRemoteObject.postInvoke= 1(StatelessRemoteObject.java:57) at weblogic.ejb.container.internal.BaseRemoteObject.postInvokeTxRet= ry(BaseRemoteObject.java:426) javax.ejb.EJBException: nested exception is: <2|false|0.9.7> org.apache.ope= njpa.util.OptimisticException: Optimistic locking errors were detected when= flushing to the data store. The following objects may have been concurren= tly modified in another transaction: [com.covergence.soa.covapi.userpolicy.= User-com.covergence.soa.covapi.userpolicy.User-1] at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(R= emoteBusinessIntfProxy.java:78) at $Proxy67.getSessionConfig(Lcom.covergence.soa.utils.SerJavaSipMe= ssageType;)Lcom.covergence.ws.callouts.SessionConfigType;(Unknown Source) at com.covergence.soa.ws.server.CallOutsImpl.getSessionConfigType(C= allOutsImpl.java:46) at com.covergence.soa.ws.server.CallOutsImplBase.getSessionPolicy(C= allOutsImplBase.java:238) at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Obj= ect;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source) at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Ob= ject;I)Ljava.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(EndpointM= ethodHandler.java:247) at com.sun.xml.ws.server.sei.SEIInvokerPipe.process(SEIInvokerPipe.= java:97) at weblogic.wsee.jaxws.MonitoringPipe.process(MonitoringPipe.java:9= 8) at com.sun.xml.ws.protocol.soap.ServerMUPipe.process(ServerMUPipe.j= ava:62) at com.sun.xml.ws.server.WSEndpointImpl$1.process(WSEndpointImpl.ja= va:139) at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(Htt= pAdapter.java:153) at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.jav= a:235) at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(Serv= letAdapter.java:97) at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.j= ava: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$ServletServiceActio= n.run(StubSecurityHelper.java:226) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubS= ecurityHelper.java:124) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImp= l.java:283) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImp= l.java:175) at weblogic.servlet.internal.WebAppServletContext$ServletInvocation= Action.run(WebAppServletContext.java:3370) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authent= icatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(Lweblogic.securi= ty.acl.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.Authen= ticatedSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(Unknown = Source) at weblogic.servlet.internal.WebAppServletContext.securedExecute(We= bAppServletContext.java:2117) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppSer= vletContext.java:2023) --=20 This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.