code: public void persistInSession( HttpServletRequest request, HttpServletResponse response )
      {
          PageFlowController currentPageFlow = PageFlowUtils.getCurrentPageFlow( request, getServletContext() );
  
          //
          // This code implicitly destroys the current page flow.  In order to prevent multiple threads
          // from executing inside the JPF at once, synchronize on it in order to complete the "destroy"
          // atomically.
          //
          if ( currentPageFlow != null && ! currentPageFlow.isOnNestingStack() )
          {
              synchronized ( currentPageFlow )
              {
                  InternalUtils.setCurrentPageFlow( this, request, getServletContext() );
              }
          }
          //
          // Here, there is no previous page flow to syncyronize upon before destruction
          //
          else
          {
              InternalUtils.setCurrentPageFlow( this, request, getServletContext() );
          }
      }
docs: Store this object in the user session, in the appropriate place.  Used by the framework; normally should not be
  called directly.