code: @Override
      public void invoke( final Request request, final Response response ) throws IOException, ServletException {
  
          final Object processRequest = request.getNote(RequestTrackingHostValve.REQUEST_PROCESS);
          if(processRequest != Boolean.TRUE) {
              request.setNote(INVOKED, Boolean.TRUE);
              try {
                  getNext().invoke( request, response );
              } finally {
                  request.setNote(RequestTrackingHostValve.REQUEST_PROCESSED, Boolean.TRUE);
              }
          }
          else {
  
              boolean sessionIdChanged = false;
              try {
                  request.setNote(INVOKED, Boolean.TRUE);
                  sessionIdChanged = changeRequestedSessionId( request, response );
                  getNext().invoke( request, response );
              } finally {
                  request.setNote(RequestTrackingHostValve.REQUEST_PROCESSED, Boolean.TRUE);
                  request.setNote(RequestTrackingHostValve.SESSION_ID_CHANGED, Boolean.valueOf(sessionIdChanged));
              }
  
          }
  
      }
docs: {@inheritDoc}