code: public static LocalRetryableExecution executeLocallyWithRetry(NodeEngine nodeEngine, Operation operation) {
          if (operation.getOperationResponseHandler() != null) {
              throw new IllegalArgumentException("Operation must not have a response handler set");
          }
          if (!operation.returnsResponse()) {
              throw new IllegalArgumentException("Operation must return a response");
          }
          if (operation.validatesTarget()) {
              throw new IllegalArgumentException("Operation must not validate the target");
          }
          final LocalRetryableExecution execution = new LocalRetryableExecution(nodeEngine, operation);
          execution.run();
          return execution;
      }
docs: Constructs a local execution with retry logic. The operation must not
  have an {@link OperationResponseHandler}, it must return a response
  and it must not validate the target.
  
  @return the local execution
  @throws IllegalArgumentException if the operation has a response handler
  set, if it does not return a response
  or if it validates the operation target
  @see Operation#returnsResponse()
  @see Operation#getOperationResponseHandler()
  @see Operation#validatesTarget()