Exception Handling jBPM -> JBossESB does not work
-------------------------------------------------
Key: JBESB-2602
URL:
https://jira.jboss.org/jira/browse/JBESB-2602
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Process flow, Rosetta
Affects Versions: 4.2.1 CP4, 4.2.1 CP5
Environment: embedded SOA 4.2 CP04 CR2
Reporter: Jiri Pechanec
Priority: Critical
See an attached example based on bpm_orchestration2. In one of the groovy scripts
service7.groovy an exception is thrown. Thne associated jBPM node there is an exception
transition defined <exceptionTransition>exception</exceptionTransition> and
this point to another node that invokes exception handle ESB service. In 4.3 this
functionality works flawlessly but in 4.2 CP4 the exception transition is ignored and the
process flow goes to the next node. Compare the debug output of the logs
In case of 4.3
11:38:29,448 INFO [STDOUT] ** Begin Receive Order - Service 1 **
11:38:29,448 INFO [STDOUT] In: Getting Started
11:38:29,448 INFO [STDOUT] Out: Getting Started 'Receive Order'
11:38:29,449 INFO [STDOUT] ** End Receive Order - Service 1 **
11:38:29,651 INFO [STDOUT] ** Begin Credit Check - Service 3 **
11:38:29,651 INFO [STDOUT] In: Getting Started 'Receive Order'
11:38:29,652 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check'
11:38:29,652 INFO [STDOUT] ** End Credit Check - Service 3 **
11:38:29,842 INFO [STDOUT] ** Begin Validate Order - Service 2 **
11:38:29,842 INFO [STDOUT] In: Getting Started 'Receive Order' 'Credit
Check'
11:38:29,843 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order'
11:38:29,843 INFO [STDOUT] ** End Validate Order - Service 2 **
11:38:30,021 INFO [STDOUT] ** Begin Inventory Check - Service 4 **
11:38:30,022 INFO [STDOUT] In: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order'
11:38:30,022 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check'
11:38:30,022 INFO [STDOUT] ** End Inventory Check - Service 4 **
11:38:30,422 INFO [STDOUT] ** Begin Los Angeles - Service 5 **
11:38:30,422 INFO [STDOUT] In: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check'
11:38:30,423 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check' 'Los Angeles'
11:38:30,423 INFO [STDOUT] ** End Los Angeles - Service 5 **
11:38:30,425 INFO [STDOUT] ** Begin Dallas - Service 6 **
11:38:30,425 INFO [STDOUT] In: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check'
11:38:30,426 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check' 'Dallas'
11:38:30,426 INFO [STDOUT] ** End Dallas - Service 6 **
11:38:30,426 INFO [STDOUT] ** Begin Atlanta - Service 7 **
11:38:30,426 INFO [STDOUT] In: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check'
11:38:30,427 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check' 'Atlanta'
11:38:30,427 INFO [STDOUT] ** Service 7 - EXCEPTION THROWN **
11:38:30,427 ERROR [GroovyActionProcessor] Error executing Groovy script.
java.lang.RuntimeException: Exception in Service 7
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at
org.codehaus.groovy.runtime.MetaClassHelper.doConstructorInvoke(MetaClassHelper.java:562)
at groovy.lang.MetaClassImpl.doConstructorInvoke(MetaClassImpl.java:1756)
at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:758)
at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:688)
at org.codehaus.groovy.runtime.Invoker.invokeConstructorOf(Invoker.java:163)
at
org.codehaus.groovy.runtime.InvokerHelper.invokeConstructorOf(InvokerHelper.java:140)
at
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeNewN(ScriptBytecodeAdapter.java:243)
at Script1.run(Script1.groovy:13)
at
org.jboss.soa.esb.actions.scripting.GroovyActionProcessor.process(GroovyActionProcessor.java:151)
at
org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:615)
at
org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:574)
at
org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:408)
at
org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:540)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
11:38:30,641 WARN [HSQLDialect] HSQLDB supports only READ_UNCOMMITTED isolation
11:38:30,655 INFO [STDOUT] ** Exception Handler **
11:38:30,655 INFO [STDOUT] In: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check'
11:38:30,655 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check' 'Exception
Handler'
11:38:30,656 INFO [STDOUT] ** End Exception Handler **
11:38:30,679 WARN [HSQLDialect] HSQLDB supports only READ_UNCOMMITTED isolation
11:38:30,762 WARN [HSQLDialect] HSQLDB supports only READ_UNCOMMITTED isolation
11:38:30,888 INFO [STDOUT] ***** Ship It *****
11:38:30,889 INFO [STDOUT] In: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check' 'Exception
Handler'
11:38:30,889 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check' 'Exception
Handler' 'Shipped'
11:38:30,889 INFO [STDOUT] ***** End Ship It *****
11:38:30,901 INFO [STDOUT] SUCCESS!:
11:38:30,901 INFO [STDOUT] [Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check' 'Exception
Handler' 'Shipped' ].
Note the Exception Handler service
In 4.2
11:51:05,191 INFO [STDOUT] ** Begin Receive Order - Service 1 **
11:51:05,248 INFO [STDOUT] In: Getting Started
11:51:05,248 INFO [STDOUT] Out: Getting Started 'Receive Order'
11:51:05,249 INFO [STDOUT] ** End Receive Order - Service 1 **
11:51:05,571 INFO [STDOUT] ** Begin Credit Check - Service 3 **
11:51:05,571 INFO [STDOUT] In: Getting Started 'Receive Order'
11:51:05,571 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check'
11:51:05,572 INFO [STDOUT] ** End Credit Check - Service 3 **
11:51:05,898 INFO [STDOUT] ** Begin Validate Order - Service 2 **
11:51:05,898 INFO [STDOUT] In: Getting Started 'Receive Order' 'Credit
Check'
11:51:05,899 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order'
11:51:05,899 INFO [STDOUT] ** End Validate Order - Service 2 **
11:51:06,194 INFO [STDOUT] ** Begin Inventory Check - Service 4 **
11:51:06,194 INFO [STDOUT] In: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order'
11:51:06,195 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check'
11:51:06,195 INFO [STDOUT] ** End Inventory Check - Service 4 **
11:51:06,620 INFO [STDOUT] ** Begin Atlanta - Service 7 **
11:51:06,620 INFO [STDOUT] In: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check'
11:51:06,620 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check' 'Atlanta'
11:51:06,620 INFO [STDOUT] ** Service 7 - EXCEPTION THROWN **
11:51:06,640 INFO [STDOUT] ** Begin Dallas - Service 6 **
11:51:06,640 INFO [STDOUT] In: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check'
11:51:06,641 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check' 'Dallas'
11:51:06,641 INFO [STDOUT] ** End Dallas - Service 6 **
11:51:06,645 ERROR [GroovyActionProcessor] Error executing Groovy script.
java.lang.RuntimeException: Exception in Service 7
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at
org.codehaus.groovy.runtime.MetaClassHelper.doConstructorInvoke(MetaClassHelper.java:562)
at groovy.lang.MetaClassImpl.doConstructorInvoke(MetaClassImpl.java:1756)
at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:758)
at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:688)
at org.codehaus.groovy.runtime.Invoker.invokeConstructorOf(Invoker.java:163)
at
org.codehaus.groovy.runtime.InvokerHelper.invokeConstructorOf(InvokerHelper.java:140)
at
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeNewN(ScriptBytecodeAdapter.java:243)
at Script1.run(Script1.groovy:13)
at
org.jboss.soa.esb.actions.scripting.GroovyActionProcessor.process(GroovyActionProcessor.java:148)
at
org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:316)
at
org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:530)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
11:51:06,647 INFO [STDOUT] ** Begin Los Angeles - Service 5 **
11:51:06,647 INFO [STDOUT] In: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check'
11:51:06,648 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check' 'Los Angeles'
11:51:06,648 INFO [STDOUT] ** End Los Angeles - Service 5 **
11:51:06,814 WARN [HSQLDialect] HSQLDB supports only READ_UNCOMMITTED isolation
11:51:06,870 WARN [HSQLDialect] HSQLDB supports only READ_UNCOMMITTED isolation
11:51:06,927 WARN [HSQLDialect] HSQLDB supports only READ_UNCOMMITTED isolation
11:51:07,085 INFO [STDOUT] ***** Ship It *****
11:51:07,086 INFO [STDOUT] In: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check' 'Los Angeles'
11:51:07,086 INFO [STDOUT] Out: Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check' 'Los Angeles'
'Shipped'
11:51:07,086 INFO [STDOUT] ***** End Ship It *****
11:51:07,098 INFO [STDOUT] SUCCESS!:
11:51:07,098 INFO [STDOUT] [Getting Started 'Receive Order' 'Credit
Check' 'Validate Order' 'Inventory Check' 'Los Angeles'
'Shipped' ].
The exception handler step is completely missing from the output
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira