Bug 780632 (SOA-3072) - ExecuteTimerCommand no longer silently handles execution of deleted timers
Summary: ExecuteTimerCommand no longer silently handles execution of deleted timers
Keywords:
Status: CLOSED NEXTRELEASE
Alias: SOA-3072
Product: JBoss Enterprise SOA Platform 5
Classification: JBoss
Component: JBPM - within SOA
Version: 5.1.0 GA
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: 5.2.0.ER4
Assignee: Kevin Conner
QA Contact:
URL: http://jira.jboss.org/jira/browse/SOA...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-05-16 14:12 UTC by Martin Weiler
Modified: 2011-11-03 09:42 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-11-03 09:42:44 UTC
Type: Bug


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker SOA-3072 0 Major Closed ExecuteTimerCommand no longer silently handles execution of deleted timers 2018-09-07 03:31:32 UTC

Description Martin Weiler 2011-05-16 14:12:51 UTC
Link type: Superset, Source: SOA-3072, Destination: SOA-3077
Help Desk Ticket Reference: https://na7.salesforce.com/500A0000007Ax8y
Steps to Reproduce: Use bpm_orchestration1 quickstart, and change the processdefinition.xml like this:

   <node name="node1">
      <action name="action2" class="org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler">
         <esbCategoryName>BPM_Orchestration_Service1</esbCategoryName>
         <esbServiceName>Service1</esbServiceName>
         <bpmToEsbVars>
         	<mapping bpm="theBody" esb="BODY_CONTENT" />
         </bpmToEsbVars>
         <esbToBpmVars>
         	<mapping esb="BODY_CONTENT" bpm="theBody" />
         </esbToBpmVars>
      </action>
      <timer name="exception_timer" duedate="20seconds" transition="time-out-transition"/>
      <transition to="node2"></transition>
      <transition to="end1" name="time-out-transition"/>
   </node>
project_key: SOA

Adding a timer as described in the timeout scenario of the jBPM-to-ESB Exception Handling Chapter of the ESB Services Guide leads to the following ERROR in the log when the timer is executed:

16:04:05,318 ERROR [JmsServerSession] Unexpected error delivering message delegator->JBossMessage[5347551745671169]:PERSISTENT, deliveryId=0
org.jbpm.JbpmException: could not process message delegator->JBossMessage[5347551745671169]:PERSISTENT, deliveryId=0
	at org.jboss.soa.esb.services.jbpm.integration.command.AbstractMessageListener.onMessage(AbstractMessageListener.java:126)
	at org.jboss.soa.esb.services.jbpm.integration.command.JobListener.onMessage(JobListener.java:16)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.internal.soa.esb.dependencies.JCAInflowAdapter$1.invoke(JCAInflowAdapter.java:276)
	at org.jboss.soa.esb.listeners.jca.EndpointProxy.delivery(EndpointProxy.java:258)
	at org.jboss.soa.esb.listeners.jca.EndpointProxy.invoke(EndpointProxy.java:150)
	at $Proxy302.onMessage(Unknown Source)
	at org.jboss.resource.adapter.jms.inflow.JmsServerSession.onMessage(JmsServerSession.java:179)
	at org.jboss.jms.client.container.ClientConsumer.callOnMessageStatic(ClientConsumer.java:160)
	at org.jboss.jms.client.container.SessionAspect.handleRun(SessionAspect.java:831)
	at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect_z_handleRun_14978629.invoke(SessionAspect_z_handleRun_14978629.java)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:172)
	at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:86)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.jms.client.delegate.ClientSessionDelegate.run(ClientSessionDelegate.java)
	at org.jboss.jms.client.JBossSession.run(JBossSession.java:199)
	at org.jboss.resource.adapter.jms.inflow.JmsServerSession.run(JmsServerSession.java:236)
	at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:205)
	at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:260)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)
Caused by: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [org.jbpm.job.Timer#2]
	at org.hibernate.impl.SessionFactoryImpl$2.handleEntityNotFound(SessionFactoryImpl.java:418)
	at org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:154)
	at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:143)
	at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:174)
	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)
	at org.jbpm.job.Timer_$$_javassist_68.getProcessInstance(Timer_$$_javassist_68.java)
	at org.jboss.soa.esb.services.jbpm.integration.job.ExecuteTimerCommand.execute(ExecuteTimerCommand.java:68)
	at org.jboss.soa.esb.services.jbpm.integration.command.AbstractMessageListener.onMessage(AbstractMessageListener.java:66)
	... 25 more

The code added with rev 35477 should happen after the JobUtil.isDeleted(timer) check.

Comment 1 Martin Weiler 2011-05-17 13:25:10 UTC
Link: Added: This issue incorporates SOA-3077


Comment 2 Kevin Conner 2011-08-25 14:33:22 UTC
Link: Added: This issue depends JBESB-3668


Comment 3 Kevin Conner 2011-08-31 17:32:08 UTC
Ported fix across to ESB, should be in ER4

Comment 4 Jiri Pechanec 2011-11-03 09:42:44 UTC
Verified in ER6


Note You need to log in before you can comment on or make changes to this bug.