public void finish(String userId, boolean assignTask) {
if (LOG.isLoggable(Level.FINE)) {
LOG.fine("Finishing task : " + taskUUID + " on activity " + activityId);
}
final Recorder recorder = EnvTool.getRecorder();
if (assignTask) {
this.userId = userId;
recorder.recordTaskAssigned(this, userId, candidates, userId);
}
this.state = TaskState.FINISHED;
recorder.recordTaskFinished(this, EnvTool.getUserId());
HookExecutor.executeHooks(activityDef.getJavaHooks(), xpdlExecution, activityId, JavaHook.Type.taskOnFinish);
activityDef.signal(xpdlExecution, AbstractActivity.BODY_FINISHED, null);
this.xpdlExecution = null;
}