Lifecycle phase executions repetitions
--------------------------------------

                 Key: MYFACES-1411
                 URL: http://issues.apache.org/jira/browse/MYFACES-1411
             Project: MyFaces Core
          Issue Type: Improvement
          Components: JSR-127
    Affects Versions: 1.1.4
            Reporter: Nikolay Petrov
            Priority: Minor
             Fix For: 1.1.5-SNAPSHOT


Every phase in LifecycleImpl looks like:

    private boolean applyRequestValues(FacesContext facesContext, 
PhaseListenerManager phaseListenerMgr)
        throws FacesException
    {
                boolean skipFurtherProcessing = false;
        if (log.isTraceEnabled()) log.trace("entering applyRequestValues in " + 
LifecycleImpl.class.getName());

        try {
            
phaseListenerMgr.informPhaseListenersBefore(PhaseId.APPLY_REQUEST_VALUES);

            if(isResponseComplete(facesContext, "applyRequestValues", true))
            {
                            // have to return right away
                            return true;
            }
            if(shouldRenderResponse(facesContext, "applyRequestValues", true))
            {
                            skipFurtherProcessing = true;
            }

            facesContext.getViewRoot().processDecodes(facesContext);
        } finally {
            
phaseListenerMgr.informPhaseListenersAfter(PhaseId.APPLY_REQUEST_VALUES);
        }


        if (isResponseComplete(facesContext, "applyRequestValues", false)
                                || shouldRenderResponse(facesContext, 
"applyRequestValues", false))
        {
                        // since this phase is completed we don't need to 
return right away even if the response is completed
                        skipFurtherProcessing = true;
        }

        if (!skipFurtherProcessing && log.isTraceEnabled())
                        log.trace("exiting applyRequestValues in "
                                        + LifecycleImpl.class.getName());
        return skipFurtherProcessing;
    }


And that is repeated as many times as phases are. The fix will be to extract 
the common behavior in a method, that receives one additional parameter - 
PhaseExecutor and delegate to it the real execution.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to