Uploaded image for project: 'jBPM'
  1. jBPM
  2. JBPM-3798

Multiple threads running on the same process instance - org.jbpm.workflow.instance.node.ActionNodeInstance

    XMLWordPrintable

Details

    • Bug
    • Resolution: Obsolete
    • Major
    • jBPM 6.4.0.CR2
    • jBPM 5.3
    • Persistence
    • None
    • Hide

      1) Write a process with timer task(500ms delay, 5s period) executing a script
      2) Start the process with persistence
      3) Stop the process
      4) Reload the persisted session in step 2

      Code & Process definition attached to JIRA.

      Show
      1) Write a process with timer task(500ms delay, 5s period) executing a script 2) Start the process with persistence 3) Stop the process 4) Reload the persisted session in step 2 Code & Process definition attached to JIRA.

    Description

      Have a persistent process with timer task(500ms delay, 5s period) executing a script. When restoring the session from database - throwing the following exception :

      Unable to execute timer job!
      org.drools.RuntimeDroolsException: Unexpected exception executing action org.jbpm.process.instance.event.DefaultSignalManager$SignalProcessInstanceAction@eef47e
      	at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:979)
      	at org.drools.impl.StatefulKnowledgeSessionImpl.executeQueuedActions(StatefulKnowledgeSessionImpl.java:866)
      	at org.jbpm.process.instance.event.DefaultSignalManager.signalEvent(DefaultSignalManager.java:90)
      	at org.jbpm.process.instance.timer.TimerManager$ProcessJob.execute(TimerManager.java:278)
      	at org.drools.time.SelfRemovalJob.execute(SelfRemovalJob.java:15)
      	at org.drools.time.impl.DefaultTimerJobInstance.call(DefaultTimerJobInstance.java:47)
      	at org.drools.persistence.jpa.JpaTimerJobInstance.internalCall(JpaTimerJobInstance.java:43)
      	at org.drools.persistence.jpa.JDKCallableJobCommand.execute(JDKCallableJobCommand.java:20)
      	at org.drools.persistence.jpa.JDKCallableJobCommand.execute(JDKCallableJobCommand.java:6)
      	at org.drools.command.impl.DefaultCommandService.execute(DefaultCommandService.java:36)
      	at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:367)
      	at org.drools.persistence.jpa.JpaTimerJobInstance.call(JpaTimerJobInstance.java:34)
      	at org.drools.persistence.jpa.JpaTimerJobInstance.call(JpaTimerJobInstance.java:14)
      	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      	at java.util.concurrent.FutureTask.run(Unknown Source)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at java.lang.Thread.run(Unknown Source)
      Caused by: java.lang.NullPointerException
      	at org.jbpm.process.audit.JPAWorkingMemoryDbLogger.getEntityManager(JPAWorkingMemoryDbLogger.java:128)
      	at org.jbpm.process.audit.JPAWorkingMemoryDbLogger.addNodeExitLog(JPAWorkingMemoryDbLogger.java:115)
      	at org.jbpm.process.audit.JPAWorkingMemoryDbLogger.logEventCreated(JPAWorkingMemoryDbLogger.java:77)
      	at org.drools.audit.WorkingMemoryLogger.filterLogEvent(WorkingMemoryLogger.java:196)
      	at org.drools.audit.WorkingMemoryLogger.beforeNodeLeft(WorkingMemoryLogger.java:506)
      	at org.drools.event.ProcessEventSupport.fireBeforeNodeLeft(ProcessEventSupport.java:112)
      	at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:201)
      	at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:164)
      	at org.jbpm.workflow.instance.impl.ExtendedNodeInstanceImpl.triggerCompleted(ExtendedNodeInstanceImpl.java:47)
      	at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:162)
      	at org.jbpm.workflow.instance.node.TimerNodeInstance.triggerCompleted(TimerNodeInstance.java:135)
      	at org.jbpm.workflow.instance.node.TimerNodeInstance.signalEvent(TimerNodeInstance.java:125)
      	at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.signalEvent(WorkflowProcessInstanceImpl.java:326)
      	at org.jbpm.process.instance.event.DefaultSignalManager$SignalProcessInstanceAction.execute(DefaultSignalManager.java:118)
      	at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:977)
      	... 19 more
      org.drools.RuntimeDroolsException: Unexpected exception executing action org.jbpm.process.instance.event.DefaultSignalManager$SignalProcessInstanceAction@eef47e
      	at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:979)
      	at org.drools.impl.StatefulKnowledgeSessionImpl.executeQueuedActions(StatefulKnowledgeSessionImpl.java:866)
      	at org.jbpm.process.instance.event.DefaultSignalManager.signalEvent(DefaultSignalManager.java:90)
      	at org.jbpm.process.instance.timer.TimerManager$ProcessJob.execute(TimerManager.java:278)
      	at org.drools.time.SelfRemovalJob.execute(SelfRemovalJob.java:15)
      	at org.drools.time.impl.DefaultTimerJobInstance.call(DefaultTimerJobInstance.java:47)
      	at org.drools.persistence.jpa.JpaTimerJobInstance.internalCall(JpaTimerJobInstance.java:43)
      	at org.drools.persistence.jpa.JDKCallableJobCommand.execute(JDKCallableJobCommand.java:20)
      	at org.drools.persistence.jpa.JDKCallableJobCommand.execute(JDKCallableJobCommand.java:6)
      	at org.drools.command.impl.DefaultCommandService.execute(DefaultCommandService.java:36)
      	at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:367)
      	at org.drools.persistence.jpa.JpaTimerJobInstance.call(JpaTimerJobInstance.java:34)
      	at org.drools.persistence.jpa.JpaTimerJobInstance.call(JpaTimerJobInstance.java:14)
      	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      	at java.util.concurrent.FutureTask.run(Unknown Source)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at java.lang.Thread.run(Unknown Source)
      Caused by: java.lang.NullPointerException
      	at org.jbpm.process.audit.JPAWorkingMemoryDbLogger.getEntityManager(JPAWorkingMemoryDbLogger.java:128)
      	at org.jbpm.process.audit.JPAWorkingMemoryDbLogger.addNodeExitLog(JPAWorkingMemoryDbLogger.java:115)
      	at org.jbpm.process.audit.JPAWorkingMemoryDbLogger.logEventCreated(JPAWorkingMemoryDbLogger.java:77)
      	at org.drools.audit.WorkingMemoryLogger.filterLogEvent(WorkingMemoryLogger.java:196)
      	at org.drools.audit.WorkingMemoryLogger.beforeNodeLeft(WorkingMemoryLogger.java:506)
      	at org.drools.event.ProcessEventSupport.fireBeforeNodeLeft(ProcessEventSupport.java:112)
      	at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:201)
      	at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:164)
      	at org.jbpm.workflow.instance.impl.ExtendedNodeInstanceImpl.triggerCompleted(ExtendedNodeInstanceImpl.java:47)
      	at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:162)
      	at org.jbpm.workflow.instance.node.TimerNodeInstance.triggerCompleted(TimerNodeInstance.java:135)
      	at org.jbpm.workflow.instance.node.TimerNodeInstance.signalEvent(TimerNodeInstance.java:125)
      	at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.signalEvent(WorkflowProcessInstanceImpl.java:326)
      	at org.jbpm.process.instance.event.DefaultSignalManager$SignalProcessInstanceAction.execute(DefaultSignalManager.java:118)
      	at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:977)
      	... 19 more
      0    20/09 10:32:15,367[pool-1-thread-1] ERROR drools.persistence.SingleSessionCommandService.rollbackTransaction  - Could not commit session
      java.lang.RuntimeException: Unable to commit transaction
      	at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:182)
      	at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:371)
      	at org.drools.persistence.jpa.JpaTimerJobInstance.call(JpaTimerJobInstance.java:34)
      	at org.drools.persistence.jpa.JpaTimerJobInstance.call(JpaTimerJobInstance.java:14)
      	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      	at java.util.concurrent.FutureTask.run(Unknown Source)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at java.lang.Thread.run(Unknown Source)
      Caused by: javax.persistence.PersistenceException: java.lang.IllegalArgumentException: Unknown node instance type: org.jbpm.workflow.instance.node.ActionNodeInstance@107f1b0
      	at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:516)
      	at bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:478)
      	at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:193)
      	at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:120)
      	at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:179)
      	... 10 more
      Caused by: java.lang.IllegalArgumentException: Unknown node instance type: org.jbpm.workflow.instance.node.ActionNodeInstance@107f1b0
      	at org.jbpm.marshalling.impl.AbstractProtobufProcessInstanceMarshaller.writeNodeInstanceContent(AbstractProtobufProcessInstanceMarshaller.java:343)
      	at org.jbpm.marshalling.impl.AbstractProtobufProcessInstanceMarshaller.writeNodeInstance(AbstractProtobufProcessInstanceMarshaller.java:149)
      	at org.jbpm.marshalling.impl.AbstractProtobufProcessInstanceMarshaller.writeProcessInstance(AbstractProtobufProcessInstanceMarshaller.java:107)
      	at org.jbpm.marshalling.impl.AbstractProtobufProcessInstanceMarshaller.writeProcessInstance(AbstractProtobufProcessInstanceMarshaller.java:70)
      	at org.jbpm.persistence.processinstance.ProcessInstanceInfo.update(ProcessInstanceInfo.java:198)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      	at java.lang.reflect.Method.invoke(Unknown Source)
      	at org.hibernate.ejb.event.BeanCallback.invoke(BeanCallback.java:23)
      	at org.hibernate.ejb.event.EntityCallbackHandler.callback(EntityCallbackHandler.java:80)
      	at org.hibernate.ejb.event.EntityCallbackHandler.preUpdate(EntityCallbackHandler.java:65)
      	at org.hibernate.ejb.event.EJB3FlushEntityEventListener.invokeInterceptor(EJB3FlushEntityEventListener.java:41)
      	at org.hibernate.event.def.DefaultFlushEntityEventListener.handleInterception(DefaultFlushEntityEventListener.java:330)
      	at org.hibernate.event.def.DefaultFlushEntityEventListener.scheduleUpdate(DefaultFlushEntityEventListener.java:270)
      	at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:151)
      	at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
      	at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
      	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:49)
      	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
      	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)
      	at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:504)
      	... 14 more
      16   20/09 10:32:15,383[pool-1-thread-1] ERROR persistence.jpa.JpaTimerJobInstance.call  - Unable to execute timer job!
      java.lang.RuntimeException: Unable to commit transaction
      	at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:182)
      	at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:371)
      	at org.drools.persistence.jpa.JpaTimerJobInstance.call(JpaTimerJobInstance.java:34)
      	at org.drools.persistence.jpa.JpaTimerJobInstance.call(JpaTimerJobInstance.java:14)
      	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      	at java.util.concurrent.FutureTask.run(Unknown Source)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at java.lang.Thread.run(Unknown Source)
      Caused by: javax.persistence.PersistenceException: java.lang.IllegalArgumentException: Unknown node instance type: org.jbpm.workflow.instance.node.ActionNodeInstance@107f1b0
      	at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:516)
      	at bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:478)
      	at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:193)
      	at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:120)
      	at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:179)
      	... 10 more
      Caused by: java.lang.IllegalArgumentException: Unknown node instance type: org.jbpm.workflow.instance.node.ActionNodeInstance@107f1b0
      	at org.jbpm.marshalling.impl.AbstractProtobufProcessInstanceMarshaller.writeNodeInstanceContent(AbstractProtobufProcessInstanceMarshaller.java:343)
      	at org.jbpm.marshalling.impl.AbstractProtobufProcessInstanceMarshaller.writeNodeInstance(AbstractProtobufProcessInstanceMarshaller.java:149)
      	at org.jbpm.marshalling.impl.AbstractProtobufProcessInstanceMarshaller.writeProcessInstance(AbstractProtobufProcessInstanceMarshaller.java:107)
      	at org.jbpm.marshalling.impl.AbstractProtobufProcessInstanceMarshaller.writeProcessInstance(AbstractProtobufProcessInstanceMarshaller.java:70)
      	at org.jbpm.persistence.processinstance.ProcessInstanceInfo.update(ProcessInstanceInfo.java:198)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      	at java.lang.reflect.Method.invoke(Unknown Source)
      	at org.hibernate.ejb.event.BeanCallback.invoke(BeanCallback.java:23)
      	at org.hibernate.ejb.event.EntityCallbackHandler.callback(EntityCallbackHandler.java:80)
      	at org.hibernate.ejb.event.EntityCallbackHandler.preUpdate(EntityCallbackHandler.java:65)
      	at org.hibernate.ejb.event.EJB3FlushEntityEventListener.invokeInterceptor(EJB3FlushEntityEventListener.java:41)
      	at org.hibernate.event.def.DefaultFlushEntityEventListener.handleInterception(DefaultFlushEntityEventListener.java:330)
      	at org.hibernate.event.def.DefaultFlushEntityEventListener.scheduleUpdate(DefaultFlushEntityEventListener.java:270)
      	at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:151)
      	at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
      	at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
      	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:49)
      	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
      	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)
      	at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:504)
      	... 14 more
      

      Attachments

        Activity

          People

            swiderski.maciej Maciej Swiderski (Inactive)
            tmag_jira Tribhuvan Maganti (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: