[Fix] Archive activity after toExecution() if state is executed

This commit is contained in:
Robert von Burg 2019-05-15 11:32:45 +02:00
parent ed2526ec95
commit ffe6b8abdc
1 changed files with 18 additions and 5 deletions

View File

@ -334,12 +334,25 @@ public class EventBasedExecutionHandler extends ExecutionHandler {
return;
}
ExecuteActivityCommand command = new ExecuteActivityCommand(getContainer(), tx);
command.setActivity(activity);
command.validate();
command.doCommand();
if (activity.getState().isExecuted()) {
tx.commitOnClose();
synchronized (this.registeredActivities) {
if (!this.registeredActivities.removeElement(realm, activityLoc))
logger.warn("Activity " + activityLoc + " already removed from registered activities!");
}
logger.info("Archiving activity " + activityLoc + " with state " + activity.getState());
archiveActivity(realm, activity.getLocator());
} else {
ExecuteActivityCommand command = new ExecuteActivityCommand(getContainer(), tx);
command.setActivity(activity);
command.validate();
command.doCommand();
tx.commitOnClose();
}
}
}