OpenJPA
  1. OpenJPA
  2. OPENJPA-749

Re insert record into DB updating Entity while global transaction enabled.

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Critical Critical
    • Resolution: Unresolved
    • Affects Version/s: 1.2.0
    • Fix Version/s: None
    • Component/s: jdbc
    • Labels:
      None
    • Environment:
      WPS6.1, DB2 9.0, OpenJPA 1.2.0, JDK 5 (IBM JVM)

      Description

      1. My env is : WPS6.1, DB2 9.0, OpenJPA 1.2.0

      2. The followed is my persistence.xml configuration file:
      <persistence-unit name="derby.ojpa">
      <provider>
      org.apache.openjpa.persistence.PersistenceProviderImpl
      </provider>
      <jta-data-source>jdbc/jpa</jta-data-source>
      <mapping-file>orm.xml</mapping-file>
      <properties>
      <property name="openjpa.TransactionMode" value="managed"
      />
      <property name="openjpa.ConnectionFactoryMode" value=
      "managed"/>
      <property name="openjpa.jdbc.DBDictionary" value="db2"/>
      <property name="openjpa.jdbc.EagerFetchMode" value="join"
      ></property>
      <property name="openjpa.InverseManager" value="true"/>
      <property name="openjpa.RetainState" value="true"/>
      <property name="openjpa.AutoDetach" value="nontx-read"/>
      <property name="openjpa.NontransactionalRead" value=
      "false"/>
      <property name="openjpa.NontransactionalWrite" value=
      "false"/>
      <property name="openjpa.ConnectionRetainMode" value=
      "transaction"/>
      </properties>
      </persistence-unit>

      3. I enable global transaction of SCA component , make sure tx is started,
      and invokes several DAO operations in one of the SCA component operation
      named "updateCaseStatus".
      such as CaseMgmtImpl SCA component sequentially invokes DAO operations

      CaseStatus cStatus = statusDAO.findByCaseStatusPK(caseeStatus);
      Casee casee = caseDAO.findByCaseePKWithRef(caseeId);
      casee.setBusinessStatus(cStatus);
      caseDAO.updateCasee(casee);

      In caseDAO.findByCaseePKWithRef :
      em = emf.createEntityManager();
      em.joinTransaction();
      result = (Casee)em.find(Casee.class, caseID);
      em.close();
      In statusDAO.findByCaseStatusPK :
      em = emf.createEntityManager();
      em.joinTransaction();
      result = (CaseStatus)em.find(CaseStatus.class, statusCode);
      em.close();

      In caseDAO.updateCasee :
      em = emf.createEntityManager();
      em.joinTransaction();
      Casee mergedcasee = em.merge(casee);
      em.flush();
      em.close();

      4. Then at the end of the sca component updateCaseStatus method, such
      errors throwed.

      com.ibm.sbs.cci.dao.DAOException: <openjpa-1.2.0-r422266:683325 fatal
      general error> org.apache.openjpa.persistence.PersistenceException: DB2 SQL
      error: SQLCODE: -803, SQLSTATE: 23505, SQLERRMC: 1;DB2ADMIN.CASEESQLCA
      OUTPUT[Errp=SQLDMISR, Errd=-2146893819, 5, 0, 0, -957, 0]
      DB2 SQL error: SQLCODE: -803, SQLSTATE: 23505, SQLERRMC: 1;DB2ADMIN.CASEE
      FailedObject: prepstmnt 315232970 INSERT INTO DB2ADMIN.CASEE (CASEID,
      CREATIONTIME, EFFECTIVEDATE, ENDDATE, EXPIRYDATE,
      CASESTATUS_BUSINESSSTATUS, CASETYPE_CASETYPE) VALUES (?, ?, ?, ?, ?, ?, ?)
      [org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement]
      at com.ibm.sbs.cci.dao.AbstractCaseeDAO.updateCasee(
      AbstractCaseeDAO.java:104)
      at com.ibm.sbs.cci.CaseMgmtImpl.updateCaseStatus(
      CaseMgmtImpl.java:129)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(
      NativeMethodAccessorImpl.java:79)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(
      DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:618)
      at com.ibm.ws.sca.internal.java.handler.JavaReflectionAdapter$2.run(
      JavaReflectionAdapter.java:152)
      at java.security.AccessController.doPrivileged(
      AccessController.java:197)
      at com.ibm.ws.sca.internal.java.handler.JavaReflectionAdapter.invoke(
      JavaReflectionAdapter.java:149)
      at
      com.ibm.ws.sca.internal.java.handler.JavaImplementationHandler.invokeSync(
      JavaImplementationHandler.java:447)
      at
      com.ibm.ws.sca.internal.java.handler.JavaImplementationHandler.processMessage(
      JavaImplementationHandler.java:195)
      at
      com.ibm.ws.sca.internal.message.impl.MessageDispatcherImpl.processMessageWithPCI(
      MessageDispatcherImpl.java:714)
      at
      com.ibm.ws.sca.internal.message.impl.MessageDispatcherImpl.processMessage(
      MessageDispatcherImpl.java:1166)
      at com.ibm.ws.sca.internal.message.impl.ManagedMessageImpl.process(
      ManagedMessageImpl.java:821)
      at
      com.ibm.wsspi.sca.ejb.module.impl.ModuleSessionBean.processUOWMessage(
      ModuleSessionBean.java:338)
      at
      com.ibm.wsspi.sca.ejb.module.impl.ModuleSessionBean.transactionRequiredActivitySessionNotSupported(
      ModuleSessionBean.java:311)
      at
      com.ibm.wsspi.sca.ejb.module.EJSLocalStatelessModule_43132892.transactionRequiredActivitySessionNotSupported(
      EJSLocalStatelessModule_43132892.java:233)
      at
      com.ibm.ws.sca.internal.uow.handler.UOWStrategyImpl.transactionGlobalActivitySessionFalse(
      UOWStrategyImpl.java:311)
      at com.ibm.ws.sca.internal.uow.handler.JoinUOWHandler.processMessage(
      JoinUOWHandler.java:165)
      at
      com.ibm.ws.sca.internal.message.impl.MessageDispatcherImpl.processMessageWithPCI(
      MessageDispatcherImpl.java:725)
      at
      com.ibm.ws.sca.internal.message.impl.MessageDispatcherImpl.processMessage(
      MessageDispatcherImpl.java:1166)
      at com.ibm.ws.sca.internal.message.impl.ManagedMessageImpl.process(
      ManagedMessageImpl.java:812)
      at
      com.ibm.wsspi.sca.ejb.module.impl.ModuleSessionBean.processMessage(
      ModuleSessionBean.java:149)
      at
      com.ibm.wsspi.sca.ejb.module.EJSLocalStatelessModule_43132892.processMessage(
      EJSLocalStatelessModule_43132892.java:97)
      at
      com.ibm.wbit.comptest.controller.invocation.impl.AdhocInvoker.processMessage(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.invocation.impl.Invoker.managedInvoke(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.invocation.impl.Invoker.invoke(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.invocation.impl.BaseInvocationHandler.invoke(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.invocation.impl.InvocationManager.doInvoke(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.invocation.impl.InvocationManager$1.run(Unknown
      Source)
      at java.security.AccessController.doPrivileged(
      AccessController.java:219)
      at javax.security.auth.Subject.doAs(Subject.java:495)
      at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:118)
      at
      com.ibm.wbit.comptest.controller.invocation.impl.InvocationManager.invoke(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.command.impl.BaseCommandHandler.doCommand(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.command.impl.CommandProcessor.doCommand(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.command.impl.CommandProcessor.doCommand(Unknown
      Source)
      at com.ibm.wbit.comptest.servlet.TestControllerServlet.process(
      TestControllerServlet.java:76)
      at com.ibm.wbit.comptest.servlet.TestControllerServlet.doPost(
      TestControllerServlet.java:51)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(
      ServletWrapper.java:995)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(
      ServletWrapper.java:501)
      at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(
      ServletWrapper.java:464)
      at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(
      CacheServletWrapper.java:90)
      at com.ibm.ws.webcontainer.WebContainer.handleRequest(
      WebContainer.java:744)
      at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(
      WebContainer.java:1455)
      at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(
      WCChannelLink.java:113)
      at
      com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(
      HttpInboundLink.java:454)
      at
      com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(
      HttpInboundLink.java:383)
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(
      HttpInboundLink.java:263)
      at
      com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(
      NewConnectionInitialReadCallback.java:214)
      at
      com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(
      NewConnectionInitialReadCallback.java:113)
      at
      com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(
      AioReadCompletionListener.java:165)
      at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(
      AbstractAsyncFuture.java:217)
      at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(
      AsyncChannelFuture.java:161)
      at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
      at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
      at com.ibm.io.async.ResultHandler.runEventProcessingLoop(
      ResultHandler.java:743)
      at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469)
      Caused by: <openjpa-1.2.0-r422266:683325 fatal general error>
      org.apache.openjpa.persistence.PersistenceException: DB2 SQL error:
      SQLCODE: -803, SQLSTATE: 23505, SQLERRMC: 1;DB2ADMIN.CASEESQLCA
      OUTPUT[Errp=SQLDMISR, Errd=-2146893819, 5, 0, 0, -957, 0]
      DB2 SQL error: SQLCODE: -803, SQLSTATE: 23505, SQLERRMC: 1;DB2ADMIN.CASEE
      FailedObject: prepstmnt 315232970 INSERT INTO DB2ADMIN.CASEE (CASEID,
      CREATIONTIME, EFFECTIVEDATE, ENDDATE, EXPIRYDATE,
      CASESTATUS_BUSINESSSTATUS, CASETYPE_CASETYPE) VALUES (?, ?, ?, ?, ?, ?, ?)
      [org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement]
      at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(
      DBDictionary.java:4238)
      at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(
      DBDictionary.java:4203)
      at org.apache.openjpa.jdbc.sql.DB2Dictionary.newStoreException(
      DB2Dictionary.java:503)
      at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(
      SQLExceptions.java:102)
      at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(
      SQLExceptions.java:72)
      at
      org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(
      BatchingPreparedStatementManagerImpl.java:195)
      at org.apache.openjpa.jdbc.kernel.MyUpdateManager.flush(
      MyUpdateManager.java:357)
      at org.apache.openjpa.jdbc.kernel.MyUpdateManager.flush(
      MyUpdateManager.java:77)
      at org.apache.openjpa.jdbc.kernel.MyUpdateManager.flush(
      MyUpdateManager.java:60)
      at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(
      JDBCStoreManager.java:655)
      at org.apache.openjpa.kernel.DelegatingStoreManager.flush(
      DelegatingStoreManager.java:130)
      at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
      at org.apache.openjpa.kernel.BrokerImpl.flushSafe(
      BrokerImpl.java:1908)
      at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1679)
      at org.apache.openjpa.kernel.DelegatingBroker.flush(
      DelegatingBroker.java:989)
      at org.apache.openjpa.persistence.EntityManagerImpl.flush(
      EntityManagerImpl.java:592)
      at com.ibm.sbs.cci.dao.AbstractCaseeDAO.updateCasee(
      AbstractCaseeDAO.java:98)
      ... 60 more
      Caused by: com.ibm.websphere.ce.cm.DuplicateKeyException: DB2 SQL error:
      SQLCODE: -803, SQLSTATE: 23505, SQLERRMC: 1;DB2ADMIN.CASEE
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
      Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(
      NativeConstructorAccessorImpl.java:67)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(
      DelegatingConstructorAccessorImpl.java:45)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:522)
      at
      com.ibm.websphere.rsadapter.GenericDataStoreHelper.mapExceptionHelper(
      GenericDataStoreHelper.java:523)
      at com.ibm.websphere.rsadapter.GenericDataStoreHelper.mapException(
      GenericDataStoreHelper.java:578)
      at com.ibm.ws.rsadapter.jdbc.WSJdbcUtil.mapException(
      WSJdbcUtil.java:903)
      at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(
      WSJdbcPreparedStatement.java:626)
      at
      org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(
      DelegatingPreparedStatement.java:269)
      at
      org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(
      LoggingConnectionDecorator.java:864)
      at
      org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(
      DelegatingPreparedStatement.java:269)
      at
      org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(
      JDBCStoreManager.java:1504)
      at
      org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(
      PreparedStatementManagerImpl.java:151)
      at
      org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushSingleRow(
      BatchingPreparedStatementManagerImpl.java:217)
      at
      org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(
      BatchingPreparedStatementManagerImpl.java:156)
      ... 71 more

      [08-10-15 16:51:08:718 CST] 00000074 RegisteredSyn E WTRN0074E: 从
      before_completion 同步操作捕获异常:<openjpa-1.2.0-r422266:683325 nonfatal
      user error> org.apache.openjpa.persistence.InvalidStateException:
      Encountered unmanaged object in persistent field
      "com.ibm.sbs.cci.pojo.Casee.businessStatus" during flush. However, this
      field does not allow cascade persist. Set the cascade attribute for this
      field to CascadeType.PERSIST or CascadeType.ALL (JPA annotations) or
      "persist" or "all" (JPA orm.xml), or enable cascade-persist globally, or
      manually persist the related field value prior to flushing. You cannot
      flush unmanaged objects or graphs that have persistent associations to
      unmanaged objects.
      FailedObject: com.ibm.sbs.cci.pojo.CaseStatus-APPROVED
      at org.apache.openjpa.kernel.SingleFieldManager.preFlushPC(
      SingleFieldManager.java:753)
      at org.apache.openjpa.kernel.SingleFieldManager.preFlush(
      SingleFieldManager.java:594)
      at org.apache.openjpa.kernel.SingleFieldManager.preFlush(
      SingleFieldManager.java:562)
      at org.apache.openjpa.kernel.SingleFieldManager.preFlush(
      SingleFieldManager.java:478)
      at org.apache.openjpa.kernel.StateManagerImpl.preFlush(
      StateManagerImpl.java:2828)
      at org.apache.openjpa.kernel.PDirtyState.beforeFlush(
      PDirtyState.java:37)
      at org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(
      StateManagerImpl.java:959)
      at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1948)
      at org.apache.openjpa.kernel.BrokerImpl.flushSafe(
      BrokerImpl.java:1908)
      at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(
      BrokerImpl.java:1826)
      at
      org.apache.openjpa.ee.WASManagedRuntime$WASSynchronization.beforeCompletion(
      WASManagedRuntime.java:304)
      at
      com.ibm.ws.jtaextensions.SynchronizationCallbackWrapper.beforeCompletion(
      SynchronizationCallbackWrapper.java:65)
      at com.ibm.ws.Transaction.JTA.RegisteredSyncs.distributeBefore(
      RegisteredSyncs.java:242)
      at com.ibm.ws.Transaction.JTA.TransactionImpl.prePrepare(
      TransactionImpl.java:2398)
      at com.ibm.ws.Transaction.JTA.TransactionImpl.stage1CommitProcessing(
      TransactionImpl.java:1631)
      at com.ibm.ws.Transaction.JTA.TransactionImpl.processCommit(
      TransactionImpl.java:1602)
      at com.ibm.ws.Transaction.JTA.TransactionImpl.commit(
      TransactionImpl.java:1537)
      at com.ibm.ws.Transaction.JTA.TranManagerImpl.commit(
      TranManagerImpl.java:239)
      at com.ibm.ws.Transaction.JTA.TranManagerSet.commit(
      TranManagerSet.java:163)
      at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:756)
      at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:181)
      at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(
      TransactionControlImpl.java:581)
      at com.ibm.ejs.container.EJSContainer.postInvoke(
      EJSContainer.java:3910)
      at
      com.ibm.wsspi.sca.ejb.module.EJSLocalStatelessModule_43132892.transactionRequiredActivitySessionNotSupported(
      EJSLocalStatelessModule_43132892.java:244)
      at
      com.ibm.ws.sca.internal.uow.handler.UOWStrategyImpl.transactionGlobalActivitySessionFalse(
      UOWStrategyImpl.java:311)
      at com.ibm.ws.sca.internal.uow.handler.JoinUOWHandler.processMessage(
      JoinUOWHandler.java:165)
      at
      com.ibm.ws.sca.internal.message.impl.MessageDispatcherImpl.processMessageWithPCI(
      MessageDispatcherImpl.java:725)
      at
      com.ibm.ws.sca.internal.message.impl.MessageDispatcherImpl.processMessage(
      MessageDispatcherImpl.java:1166)
      at com.ibm.ws.sca.internal.message.impl.ManagedMessageImpl.process(
      ManagedMessageImpl.java:812)
      at
      com.ibm.wsspi.sca.ejb.module.impl.ModuleSessionBean.processMessage(
      ModuleSessionBean.java:149)
      at
      com.ibm.wsspi.sca.ejb.module.EJSLocalStatelessModule_43132892.processMessage(
      EJSLocalStatelessModule_43132892.java:97)
      at
      com.ibm.wbit.comptest.controller.invocation.impl.AdhocInvoker.processMessage(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.invocation.impl.Invoker.managedInvoke(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.invocation.impl.Invoker.invoke(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.invocation.impl.BaseInvocationHandler.invoke(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.invocation.impl.InvocationManager.doInvoke(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.invocation.impl.InvocationManager$1.run(Unknown
      Source)
      at java.security.AccessController.doPrivileged(
      AccessController.java:219)
      at javax.security.auth.Subject.doAs(Subject.java:495)
      at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:118)
      at
      com.ibm.wbit.comptest.controller.invocation.impl.InvocationManager.invoke(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.command.impl.BaseCommandHandler.doCommand(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.command.impl.CommandProcessor.doCommand(Unknown
      Source)
      at
      com.ibm.wbit.comptest.controller.command.impl.CommandProcessor.doCommand(Unknown
      Source)
      at com.ibm.wbit.comptest.servlet.TestControllerServlet.process(
      TestControllerServlet.java:76)
      at com.ibm.wbit.comptest.servlet.TestControllerServlet.doPost(
      TestControllerServlet.java:51)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(
      ServletWrapper.java:995)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(
      ServletWrapper.java:501)
      at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(
      ServletWrapper.java:464)
      at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(
      CacheServletWrapper.java:90)
      at com.ibm.ws.webcontainer.WebContainer.handleRequest(
      WebContainer.java:744)
      at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(
      WebContainer.java:1455)
      at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(
      WCChannelLink.java:113)
      at
      com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(
      HttpInboundLink.java:454)
      at
      com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(
      HttpInboundLink.java:383)
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(
      HttpInboundLink.java:263)
      at
      com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(
      NewConnectionInitialReadCallback.java:214)
      at
      com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(
      NewConnectionInitialReadCallback.java:113)
      at
      com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(
      AioReadCompletionListener.java:165)
      at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(
      AbstractAsyncFuture.java:217)
      at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(
      AsyncChannelFuture.java:161)
      at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
      at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
      at com.ibm.io.async.ResultHandler.runEventProcessingLoop(
      ResultHandler.java:743)
      at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469)

      5. According to my analysis,

      CaseStatus cStatus = statusDAO.findByCaseStatusPK(caseeStatus); —
      cStatus with StateManagerImpl & PNonTransState
      Casee casee = caseDAO.findByCaseePKWithRef(caseeId); —
      casee with StateManagerImpl & PNonTransState
      casee.setBusinessStatus(cStatus); —
      casee with StateManagerImpl & PDirtyState
      caseDAO.updateCasee(casee); —
      in updateCasee method, casee(PDirtyTransState -> PNewState)

      em = emf.createEntityManager();
      em.joinTransaction();
      Casee mergedcasee = em.merge(casee); —
      casee with StateManagerImpl & PDirtyState

      mergedcasee with StateManagerImpl & PNewState
      em.flush(); —
      Here, a record would be inserted into DB
      em.close();

        Activity

        Lu HongJin created issue -
        Hide
        Dinkar Rao added a comment -

        I've been able to reproduce the problem in a scenario very similar to the one mentioned in this issue, albeit in a JSE setup. The fix submitted for OPENJPA-755 also fixes this problem in my scenario. The test I have for this issue is apart from the one submitted for OPENJPA-755.

        Thanks,
        Dinkar

        Show
        Dinkar Rao added a comment - I've been able to reproduce the problem in a scenario very similar to the one mentioned in this issue, albeit in a JSE setup. The fix submitted for OPENJPA-755 also fixes this problem in my scenario. The test I have for this issue is apart from the one submitted for OPENJPA-755 . Thanks, Dinkar

          People

          • Assignee:
            Unassigned
            Reporter:
            Lu HongJin
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:

              Development