code: public UIViewRoot restoreView(FacesContext context, String viewId)
      {
          ExternalContext externalContext = context.getExternalContext();
          Object request = externalContext.getRequest();
          HttpServletRequest httpRequest = null;
          
          if ( request instanceof HttpServletRequest )
          {
              httpRequest = ( HttpServletRequest ) request;
              
              //
              // If we did a forward in PageFlowNavigationHandler, don't try to restore the view.
              //
              if ( httpRequest.getAttribute( PageFlowNavigationHandler.ALREADY_FORWARDED_ATTR ) != null )
              {
                  return null;
              }
              
              //
              // Create/restore the backing bean that corresponds to this request.
              //
              HttpServletResponse response = ( HttpServletResponse ) externalContext.getResponse();
              ServletContext servletContext = ( ServletContext ) externalContext.getContext();
              setBackingBean( httpRequest, response, servletContext );
              
          }
          
          UIViewRoot viewRoot = _delegate.restoreView( context, viewId );
          savePreviousPageInfo( httpRequest, externalContext, viewId, viewRoot );
          return viewRoot;
      }
docs: If we are in a request forwarded by {@link PageFlowNavigationHandler}, returns <code>null</code>; otherwise,
  delegates to the base ViewHandler.