code: @SuppressWarnings("unchecked")
  	public Task<E> cloneTask () {
  		if (TASK_CLONER != null) {
  			try {
  				return TASK_CLONER.cloneTask(this);
  			} catch (Throwable t) {
  				throw new TaskCloneException(t);
  			}
  		}
  		try {
  			Task<E> clone = copyTo(ClassReflection.newInstance(this.getClass()));
  			clone.guard = guard == null ? null : guard.cloneTask();
  			return clone;
  		} catch (ReflectionException e) {
  			throw new TaskCloneException(e);
  		}
  	}
docs: Clones this task to a new one. If you don't specify a clone strategy through {@link #TASK_CLONER} the new task is
  instantiated via reflection and {@link #copyTo(Task)} is invoked.
  @return the cloned task
  @throws TaskCloneException if the task cannot be successfully cloned.