code: @Nonnull
    public CloseableHttpResponse execute (@Nonnull final HttpUriRequest aRequest,
                                          @Nullable final HttpContext aHttpContext) throws IOException
    {
      checkIfClosed ();
      HttpDebugger.beforeRequest (aRequest, aHttpContext);
      CloseableHttpResponse ret = null;
      Throwable aCaughtException = null;
      try
      {
        ret = m_aHttpClient.execute (aRequest, aHttpContext);
        return ret;
      }
      catch (final IOException ex)
      {
        aCaughtException = ex;
        throw ex;
      }
      finally
      {
        HttpDebugger.afterRequest (aRequest, ret, aCaughtException);
      }
    }
docs: Execute the provided request with an optional special context. Caller is
  responsible for consuming the response correctly!
  
  @param aRequest
  The request to be executed. May not be <code>null</code>.
  @param aHttpContext
  The optional context to be used. May be <code>null</code> to
  @return The response to be evaluated. Never <code>null</code>.
  @throws IOException
  In case of error
  @throws IllegalStateException
  If this manager was already closed!