code: @Nonnull
    public static String getRequestPathInfo (@Nullable final HttpServletRequest aRequest)
    {
      String ret = null;
      if (aRequest != null)
        try
        {
          // They may return null!
          if (aRequest.isAsyncSupported () && aRequest.isAsyncStarted ())
            ret = (String) aRequest.getAttribute (AsyncContext.ASYNC_PATH_INFO);
          else
            ret = aRequest.getPathInfo ();
        }
        catch (final UnsupportedOperationException ex)
        {
          // Offline request - fall through
        }
        catch (final Exception ex)
        {
          // fall through
          if (isLogExceptions ())
            if (LOGGER.isWarnEnabled ())
              LOGGER.warn ("[ServletHelper] Failed to determine path info of HTTP request", ex);
        }
      return ret == null ? "" : ret;
    }
docs: Get the path info of an request, supporting sync and async requests.
  
  @param aRequest
  Source request. May be <code>null</code>.
  @return Empty string if request is <code>null</code> or a the path info.