[
https://issues.apache.org/jira/browse/MYFACES-2683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Leonardo Uribe resolved MYFACES-2683.
-------------------------------------
Fix Version/s: 2.0.1-SNAPSHOT
Resolution: Fixed
> Event processing should be enabled when bindings are set with pss enabled
> -------------------------------------------------------------------------
>
> Key: MYFACES-2683
> URL: https://issues.apache.org/jira/browse/MYFACES-2683
> Project: MyFaces Core
> Issue Type: Bug
> Components: JSR-314
> Affects Versions: 2.0.0
> Reporter: Leonardo Uribe
> Assignee: Leonardo Uribe
> Fix For: 2.0.1-SNAPSHOT
>
>
> At the end of DefaultFaceletsStateManagementStrategy.restoreView we do this
> call:
> view.visitTree(VisitContext.createVisitContext(context), new
> RestoreStateCallback());
> This one propagates PostRestoreStateEvent, that triggers set binding property
> on all beans (see UIComponent.processEvent).
> An possible use case in jsf 1.1 and jsf 1.2 is add additional components to
> the tree on that event. Long time ago, that was an implementation detail but
> now it was standarized. Right now with pss disabled everything works fine but
> with pss enabled that use case does not work.
> The reason why this is not working is we use a listener attached to
> PostAddToViewEvent / PreRemoveFromViewEvent to keep track of programatically
> added / removed components. Since RestoreViewExecutor disable event
> processing on restore view, PostAddPreRemoveFromViewListener just don't
> receive the events and all added components are just skipped.
> This does not happen with pss disabled because we don't rely there of some
> kind of Listener to keep track of changes on component tree, we just save the
> whole tree and that's it.
> A similar problem we have on the same method (see vdl.buildView):
> // TODO: Why is necessary enable event processing?
> // ANS: On RestoreViewExecutor, setProcessingEvents is called
> first to false
> // and then to true when postback. Since we need listeners
> registered to PostAddToViewEvent
> // event to be handled, we should enable it again. We are
> waiting a response from EG about
> // the behavior of those listeners, because for partial state
> saving we need this listeners
> // be called from here and relocate components properly, but
> for now we have to let this code as is.
> try
> {
> context.setProcessingEvents (true);
> vdl.buildView (context, view);
> I think it is better to enable it in this case
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.