code: protected void cleanup() {
  		try {
  			if (cancellationHandler != null) {
  				cancellationHandler.onCancel();
  			} else if (this instanceof CancellationHandler) {
  				((CancellationHandler) this).onCancel();
  			}
  		} catch (Throwable t) {
  			// TODO: forward to global ExceptionHandler
  			log.warn("Unexpected error when cleaning up", t);
  		}
  	}
docs: Performs resource cleanup upon interruption or cancellation of the underlying task.
  This method gives precedence to {@code cancellationHandler} it not null, otherwise
  it invokes the underlying task's {@code onCancel()} if it implements the {@code CancellationHandler} interface.