code: private void dispatchRequest(final HttpServerExchange exchange, final ServletRequestContext servletRequestContext, final ServletChain servletChain, final DispatcherType dispatcherType) throws Exception {
          HttpHandler next=null;
          try{
              //lets get access of superclass private fields using reflection:
              Field nextField = ServletInitialHandler.class.getDeclaredField("next");
              nextField.setAccessible(true);
              next = (HttpHandler)nextField.get(this);
              nextField.setAccessible(false);
          }catch(NoSuchFieldException | IllegalAccessException e){
              throw new ServletException(e);
          }
  
          servletRequestContext.setDispatcherType(dispatcherType);
          servletRequestContext.setCurrentServlet(servletChain);
          if (dispatcherType == DispatcherType.REQUEST || dispatcherType == DispatcherType.ASYNC) {
              super.handleFirstRequest(exchange, servletChain, servletRequestContext, servletRequestContext.getServletRequest(), servletRequestContext.getServletResponse());
          } else {
              next.handleRequest(exchange);
          }
      }
docs: FIXME:kakonyii: This method is copied form the base class: