code: @Override
      @FFDCIgnore({ ExecutionException.class })
      public boolean cancel(boolean mayInterruptIfRunning) {
          Future<Future<R>> resultFuture = getResultFuture();
          boolean cancellationResult = resultFuture.cancel(false); // Sets the result to be a CancellationException
  
          // If cancellationResult is true, then either we've just cancelled the task, or it was already cancelled
          if (cancellationResult) {
              getTaskFuture().cancel(mayInterruptIfRunning); // Attempt to cancel the queued/running task
          } else if (resultFuture.isDone() && !resultFuture.isCancelled()) {
              try {
                  Future<R> innerFuture = resultFuture.get();
                  cancellationResult = innerFuture.cancel(mayInterruptIfRunning);
              } catch (InterruptedException e) {
                  //outerFuture was done so we should never get an interrupted exception
                  throw new FaultToleranceException(e);
              } catch (ExecutionException e) {
                  //this is most likely to be caused if an exception is thrown from the business method ... or a TimeoutException
                  //either way, the future cannot be cancelled
                  cancellationResult = false;
              }
          }
  
          return cancellationResult;
      }
docs: {@inheritDoc}