docs: @Override
      public void doPostPhaseActions(FacesContext facesContext)
      {
          if (!_flashScopeDisabled)
          {
              // do the actions only if this is the last time
              // doPostPhaseActions() is called on this request
              if (_isLastPhaseInRequest(facesContext))
              {
                  if (_isRedirectTrueOnThisRequest(facesContext))
                  {
                      // copy entries from executeMap to renderMap, if they do not exist
                      Map<String, Object> renderMap = _getRenderFlashMap(facesContext);
  
                      for (Map.Entry<String, Object> entry 
                          : _getExecuteFlashMap(facesContext).entrySet())
                      {
                          if (!renderMap.containsKey(entry.getKey()))
                          {
                              renderMap.put(entry.getKey(), entry.getValue());
                          }
                      }
                  }
              
                  // remove execute Map entries from session (--> "destroy" executeMap)
                  _clearExecuteFlashMap(facesContext);
              
                  // save the current FacesMessages in the renderMap, if wanted
                  // Note that this also works on a redirect even though the redirect
                  // was already performed and the response has already been committed,
                  // because the renderMap is stored in the session.
                  _saveMessages(facesContext);
                  
                  _clearRenderFlashTokenIfMapEmpty(facesContext);
              }
          }
      }