code: public void processApplication(FacesContext context) {
          initState();
          notifyBefore(context, PhaseId.INVOKE_APPLICATION);
          try {
              if (!skipPhase) {
                  // NOTE - no tree walk is performed; this is a UIViewRoot-only operation
                  broadcastEvents(context, PhaseId.INVOKE_APPLICATION);
              }
          } finally {
              clearFacesEvents(context);
              notifyAfter(context, PhaseId.INVOKE_APPLICATION);
          }
      }
docs: <p>Broadcast any events that have been queued for the <em>Invoke
  Application</em> phase of the request processing lifecycle
  and to clear out any events for later phases if the event processing
  for this phase caused {@link FacesContext#renderResponse} or
  {@link FacesContext#responseComplete} to be called.</p>
  
  @param context {@link FacesContext} for the request we are processing
  
  @throws NullPointerException if <code>context</code>
  is <code>null</code>