code: void recordOperationPrepareTimeout(final BlockingQueueOperationListener.FailedOperation<ServerOperation> failedOperation) {
          recordPreparedTask(new ServerTaskExecutor.ServerPreparedResponse(failedOperation));
          // Swap out the submitted task so we don't wait for the final result. Use a future the returns
          // prepared response
          ServerIdentity identity = failedOperation.getOperation().getIdentity();
          AsyncFuture<OperationResponse> finalResult = failedOperation.getFinalResult();
          synchronized (submittedTasks) {
              submittedTasks.put(identity, new ServerTaskExecutor.ExecutedServerRequest(identity, finalResult));
          }
      }
docs: Record a prepare operation timeout.
  
  @param failedOperation the prepared operation