}
/** @see Execution#end(String, boolean) */
public void end(String state, boolean remove) {
if (state==null) {
throw new PvmException("state is null");
}
if (userCodeType==UserCodeType.EVENT_ACTIVITY) {
throw new PvmException("end is not allowed inside an event. only node behaviour activities can control the propagation of execution");
}
log.finest(toString()+" ends with state "+state);
lock(state);
this.propagation = Propagation.EXPLICIT;
fire(ProcessDefinition.EVENT_PROCESS_END, processDefinition);