Hi,
after restoring the state, webflow publishes an _post restore state_ event. That one visits the JSF tree. Is it the designated bahavior that the rendered flag of the components is ignored? I asumed that only rendered components will be visited, but I don't know the 'usages' of the _post restore state_ event...
In my project I get an NPE in a component that is not rendered.
The NPE does not occur if I change the publishing code in JSF2FlowApplication from:
to:Code:static void publishPostRestoreStateEvent() { FacesContext facesContext = FlowFacesContext.getCurrentInstance(); try { facesContext.getViewRoot().visitTree(VisitContext.createVisitContext(facesContext), new PostRestoreStateEventVisitCallback()); } catch (AbortProcessingException e) { facesContext.getApplication().publishEvent(facesContext, ExceptionQueuedEvent.class, new ExceptionQueuedEventContext(facesContext, e, null, facesContext.getCurrentPhaseId())); } }
(Code:static void publishPostRestoreStateEvent() { FacesContext facesContext = FlowFacesContext.getCurrentInstance(); try { facesContext.getViewRoot().visitTree(VisitContext.createVisitContext(facesContext, null, EnumSet.of(VisitHint.SKIP_UNRENDERED)), new PostRestoreStateEventVisitCallback()); } catch (AbortProcessingException e) { facesContext.getApplication().publishEvent(facesContext, ExceptionQueuedEvent.class, new ExceptionQueuedEventContext(facesContext, e, null, facesContext.getCurrentPhaseId())); } }
Environment:
Spring 3.1, Webflow 2.3.1, MyFaces 2.1.6, Tomahawk20 1.1.11
)


Reply With Quote