0 Replies Latest reply on Apr 23, 2012 12:02 PM by pushpak1981

    jBPM5 AsynchronousInterceptor

    pushpak1981 Novice

      Hi,

       

      Is there any way i can use drools Asynchronous Interceptor to start a new jBPM process?

       

      I found a link where is mentions for the same : http://drools.46999.n3.nabble.com/Blocking-Call-to-startProcess-td49557.html#a49560

       

      I tried with combination of CommandBasedStatefulKnowledgeSession and AsynchronousInterceptor but it gives NPE in case of Human Tasks.

       

      Following is the trace:

      21:15:25,684 INFO  [org.apache.mina.filter.logging.LoggingFilter] (NioProcessor-1) RECEIVED: HeapBuffer[pos=0 lim=1012 cap=2048: 00 00 01 4F AC ED 00 05 73 72 01 00 1D 6F 72 67...]
      21:15:25,687 ERROR [org.drools.persistence.SingleSessionCommandService] (Thread-220) Could not commit session: java.lang.NullPointerException
              at org.drools.command.impl.CommandBasedStatefulKnowledgeSession.getId(CommandBasedStatefulKnowledgeSession.java:119) [drools-core-5.3.1.Final.jar:]
              at org.jbpm.process.workitem.wsht.CommandBasedWSHumanTaskHandler.executeWorkItem(CommandBasedWSHumanTaskHandler.java:132) [jbpm-human-task-5.2.0.Final.jar:]
              at org.drools.persistence.jpa.processinstance.JPAWorkItemManager.internalExecuteWorkItem(JPAWorkItemManager.java:53) [drools-persistence-jpa-5.3.1.Final.jar:]
              at org.jbpm.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:105) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:122) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:185) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:150) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.workflow.instance.node.ActionNodeInstance.triggerCompleted(ActionNodeInstance.java:55) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.workflow.instance.node.ActionNodeInstance.internalTrigger(ActionNodeInstance.java:51) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:122) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:185) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:150) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:49) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:41) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:122) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:35) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:188) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:303) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.process.instance.ProcessRuntimeImpl.startProcessInstance(ProcessRuntimeImpl.java:168) [jbpm-flow-5.2.0.Final.jar:]
              at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:138) [jbpm-flow-5.2.0.Final.jar:]
              at org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1079) [drools-core-5.3.1.Final.jar:]
              at org.drools.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:306) [drools-core-5.3.1.Final.jar:]
              at org.drools.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:119) [drools-core-5.3.1.Final.jar:]
              at org.drools.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:38) [drools-core-5.3.1.Final.jar:]
              at org.drools.command.impl.DefaultCommandService.execute(DefaultCommandService.java:36) [drools-core-5.3.1.Final.jar:]
              at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:345) [drools-persistence-jpa-5.3.1.Final.jar:]
              at org.drools.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:42) [drools-core-5.3.1.Final.jar:]
              at org.drools.command.impl.AsynchronousInterceptor$1.run(AsynchronousInterceptor.java:27) [drools-core-5.3.1.Final.jar:]
              at java.lang.Thread.run(Thread.java:619) [:1.6.0_03]
      

       

      without the Human Task the workflow completed properly.

       

      Any hints would be really helpful.

       

      Thanks.