code: private void requestProcessed(FacesContext facesContext)
      {
          if(!_firstRequestProcessed)
          {
              // The order here is important. First it is necessary to put
              // the value on application map before change the value here.
              // If multiple threads reach this point concurrently, the
              // variable will be written on the application map at the same
              // time but always with the same value.
              facesContext.getExternalContext().getApplicationMap()
                  .put(FIRST_REQUEST_PROCESSED_PARAM, Boolean.TRUE);
              
              _firstRequestProcessed = true;
          }        
      }
docs: This method places an attribute on the application map to
  indicate that the first request has been processed. This
  attribute is used by several methods in ApplicationImpl
  to determine whether or not to throw an IllegalStateException
  @param facesContext