Unfortunately your stack trace doesn't show the real (original) exception, maybe there
is a 'caused by' trace underneath it? But from this one, more particular the line
at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:276)
we are able to see that the exception originates in the executeAction(...) method,
indicating there's either an exception is thrown in the execution of the Action (and
thus most likely in the ActionHandler), or something went wrong in the locking of the
Token (and that would be my first guess here).
When you signal a Token from within an ActionHandler, chances are that the call executing
the ActionHandler already locked the Token (for the duration of the Action's
execution, see GraphElement.java lines 241-264). The signal call causes the node-leave
event, which in turn causes your DefaultEnd handler to be called... but before it gets
there it tries to lock the Token - again.
A signal should be used 'from the outside' to trigger a process instance to move
on, from the inside it's possibly safe (depends on the node type really) to directly
use the leave(...) method. You can try replacing the line
token.signal(isOK ? "OK" : "KO");
with
executionContext.getNode().leave(executionContext, isOK ? "OK" :
"KO");
to see whether this works for you.
Hope this helps a bit more!
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4270261#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...