[jboss-user] [jBPM Users] - Re: task & timers

MohReece do-not-reply at jboss.com
Fri Dec 11 11:43:01 EST 2009


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#4270261

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4270261



More information about the jboss-user mailing list