myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leonardo Uribe (JIRA)" <...@myfaces.apache.org>
Subject [jira] Resolved: (MYFACES-2683) Event processing should be enabled when bindings are set with pss enabled
Date Wed, 28 Apr 2010 22:33:48 GMT

     [ 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.


Mime
View raw message