code: public HttpRequestAbortTaskTracker startTimer(final HttpRequestBase apacheRequest, final int requestTimeoutMillis) {
          if (isTimeoutDisabled(requestTimeoutMillis)) {
              return NoOpHttpRequestAbortTaskTracker.INSTANCE;
          } else if (executor == null) {
              initializeExecutor();
          }
          HttpRequestAbortTaskImpl timerTask = new HttpRequestAbortTaskImpl(apacheRequest);
          ScheduledFuture<?> timerTaskFuture = executor.schedule(timerTask, requestTimeoutMillis, TimeUnit.MILLISECONDS);
          return new HttpRequestAbortTaskTrackerImpl(timerTask, timerTaskFuture);
      }
docs: Start the timer with the specified timeout and return a object that can be used to track the
  state of the timer and cancel it if need be.
  
  @param apacheRequest
  HTTP request this timer will abort if triggered.
  @param requestTimeoutMillis
  A positive value here enables the timer, a non-positive value disables it and
  returns a dummy tracker task
  @return Implementation of {@link HttpRequestAbortTaskTrackerImpl} to query the state of the
  task and cancel it if appropriate