Until an appropriate solution is found or reply is received from JBoss, we have
just decided to apply the following local fix.
Again this is related to loss of Node after Exception is thrown within the
custom ActionHandler.
All we do is saving the Node object before calling token.signal() method. When
we catch the Exception and if new value of getNode() is NULL, we store the
saved copy of the Node. Sample code is below:
public void processWorkflowEvent(long pid, String eventName) throws ...
| {
| JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
| JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
| try
| {
| ... your own code
| ProcessInstance process = jbpmContext.getProcessInstanceForUpdate(pid);
| Token token = process.getRootToken();
| // save the node
| Node nodeSaved = token.getNode();
|
| // process signal
| try
| {
| token.signal(eventName);
| }
| catch(Exception e)
| {
| if(token.getNode() == null)
| {
| // node is lost due to JBPM internals
| // restore the node
| token.setNode(nodeSaved);
| }
| ...
| }
| }
| catch(Exception e)
| {
| // do whatever you need to handle own exceptions
| }
| finally
| {
| jbpmContext.close();
| }
| }
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4048111#4048111
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4048111
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user