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