Hi!
I use jBPM 4.4 and created a simple process which includes a state and a subprocess with different end activities:
The subprocess is similar to the example in user guide > http://docs.jboss.com/jbpm/v4/userguide/html_single/#endstate .
When I send the signal "end" to the state in the subprocess, the process wait in state "end state". That's correct!
But if I send the signal "cancel" or "end", a JbpmException "execution[...] has running subprocess: execution[...] in state cancel/error" throws.
This exception throws in method checkActive() of the class ExecutionImpl:
if (!isActive())
protected void checkActive()
{
if (!isActive())
{
throw new JbpmException(toString() + " is not active: " + state);
}
else if (this.subProcessInstance != null
&& !Execution.STATE_ENDED.equals(this.subProcessInstance.getState()))
{
throw new JbpmException(toString() + " has running subprocess: "
+ this.subProcessInstance.toString() + " in state " + this.subProcessInstance.getState());
}
}
The problem is that the methode only check if the subprocess has the state "end".
I think the method have to check if the subprocess state is one of {end, cancel, error}. Right?