Applications using JSF 2.2 Faces Flows and MyFaces don't work with PrettyFaces. This NPE is thrown:
java.lang.NullPointerException
at org.apache.myfaces.application.NavigationHandlerImpl.getNavigationCaseFromFlowStructure(NavigationHandlerImpl.java:905)
at org.apache.myfaces.application.NavigationHandlerImpl.getNavigationCommand(NavigationHandlerImpl.java:720)
at org.apache.myfaces.application.NavigationHandlerImpl.getNavigationCase(NavigationHandlerImpl.java:394)
at com.ocpsoft.pretty.faces2.application.PrettyNavigationHandler.getNavigationCase(PrettyNavigationHandler.java:121)
at org.ocpsoft.rewrite.faces.RewriteNavigationHandler.getNavigationCase(RewriteNavigationHandler.java:116)
at org.apache.myfaces.shared.renderkit.html.util.OutcomeTargetUtils.getOutcomeTargetHref(OutcomeTargetUtils.java:81)
at org.apache.myfaces.shared.renderkit.html.HtmlRendererUtils.getOutcomeTargetHref(HtmlRendererUtils.java:1602)
at org.apache.myfaces.shared.renderkit.html.HtmlLinkRendererBase.renderOutcomeLinkStart(HtmlLinkRendererBase.java:1006)
at org.apache.myfaces.shared.renderkit.html.HtmlLinkRendererBase.encodeBegin(HtmlLinkRendererBase.java:145)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:597)
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:527)
It looks to me like PrettyFaces doesn't correctly register Flows in its PrettyNavigationHandler. PrettyNavigationHandler extends ConfigurableNavigationHandler, however it doesn't do anything with the inspectFlow method that was added in JSF 2.2. To resolve this, PrettyNavigationHandler should probably override inspectFlow and delegate to its parent, since the default implementation of inspectFlow is a no-op.
I've created a sample branch that reproduces this issue: https://github.com/wtlucy/jsf22-examples/tree/prettyfaces_issue/jsf22-flows
Applications using JSF 2.2 Faces Flows and MyFaces don't work with PrettyFaces. This NPE is thrown:
It looks to me like PrettyFaces doesn't correctly register Flows in its
PrettyNavigationHandler.PrettyNavigationHandlerextendsConfigurableNavigationHandler, however it doesn't do anything with theinspectFlowmethod that was added in JSF 2.2. To resolve this,PrettyNavigationHandlershould probably overrideinspectFlowand delegate to its parent, since the default implementation ofinspectFlowis a no-op.I've created a sample branch that reproduces this issue: https://github.com/wtlucy/jsf22-examples/tree/prettyfaces_issue/jsf22-flows