code: @Override
      public R execute(Callable<R> callable, ExecutionContext context) {
          MethodResult<R> result;
  
          try {
              result = run(callable, context);
          } catch (Exception e) {
              // Handle unexpected exceptions
              // Exceptions from user code should have been caught and wrapped up in the MethodResult
              Tr.error(tc, "internal.error.CWMFT4998E", e);
              throw new FaultToleranceException(Tr.formatMessage(tc, "internal.error.CWMFT4998E", e), e);
          }
  
          if (result.isFailure()) {
              if (result.getFailure() instanceof FaultToleranceException) {
                  throw (FaultToleranceException) result.getFailure();
              } else {
                  throw new ExecutionException(result.getFailure());
              }
          }
  
          return result.getResult();
      }
docs: {@inheritDoc}