/**
  * Completes a the given semantic composite operation.
  *
  * @param semanticCompositeOperation a semanticCompositeOperation that was executed and represents
  *     the composite
  * @throws InvalidHandleException if the handle is invalid
  */
 public void end(SemanticCompositeOperation semanticCompositeOperation)
     throws InvalidHandleException {
   checkAndCloseHandle();
   semanticCompositeOperation.setClientDate(new Date());
   semanticCompositeOperation.setReversed(false);
   semanticCompositeOperation.getSubOperations().addAll(compositeOperation.getSubOperations());
   operationRecorder.endCompositeOperation(semanticCompositeOperation);
 }