Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Duplicate
-
Affects Version/s: 3.0.RC1
-
Fix Version/s: 3.0
-
Component/s: ACE-Components
-
Labels:None
-
Environment:*
-
Assignee Priority:P1
Description
From Derek:
When running the Panel Listeners example in the ACE Showcase with
MyFaces, the methods that handle the "toggle" and "close" events are not
being fired. The relevant markup:
<ace:panel header="ICEfaces Header With Listeners"
closable="true"
toggleable="true">
<ace:ajax event="close" listener="#{panelListener.close}" render="status" />
<ace:ajax event="toggle" listener="#{panelListener.toggle}"
render="status"/>
I added some logging and the problem is that the AjaxBehavior that is
used to broadcast the events is not the AjaxBehavior that was initially
registered. I assume that the extra AjaxBehaviors that are created are
the cost of doing all the Facelets includes and such.
Mojarra
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@7629a4cb
AjaxBehavior.setListener:
/resources/examples/ace/panel/panelListener.xhtml @44,93
listener="#{panelListener.close}":
org.apache.el.MethodExpressionImpl@c35a2e13 for
org.icefaces.ace.component.ajax.AjaxBehavior@7629a4cb
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@28024808
AjaxBehavior.setListener:
/resources/examples/ace/panel/panelListener.xhtml @45,94
listener="#{panelListener.toggle}":
org.apache.el.MethodExpressionImpl@2fddf4db for
org.icefaces.ace.component.ajax.AjaxBehavior@28024808
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@2dc719bd
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@e478e18
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@7bc1d0fa
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@717f0c8f
AjaxBehavior.broadcast: calling for
org.icefaces.ace.component.ajax.AjaxBehavior@28024808
PanelListener.toggle: Toggle Event fired @ 10:56:17
MyFaces
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@37de41ce
AjaxBehavior.setListener:
/resources/examples/ace/panel/panelListener.xhtml at line 44 and column
93: org.apache.el.MethodExpressionImpl@c35a2e13 for
org.icefaces.ace.component.ajax.AjaxBehavior@37de41ce
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@60b25809
AjaxBehavior.setListener:
/resources/examples/ace/panel/panelListener.xhtml at line 45 and column
94: org.apache.el.MethodExpressionImpl@2fddf4db for
org.icefaces.ace.component.ajax.AjaxBehavior@60b25809
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@5cb1e877
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@24150c2c
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@61d22f35
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@2e1972bf
AjaxBehavior.broadcast: calling for
org.icefaces.ace.component.ajax.AjaxBehavior@24150c2c
AjaxBehavior.broadcast: no listener for
org.icefaces.ace.component.ajax.AjaxBehavior@24150c2c
When running the Panel Listeners example in the ACE Showcase with
MyFaces, the methods that handle the "toggle" and "close" events are not
being fired. The relevant markup:
<ace:panel header="ICEfaces Header With Listeners"
closable="true"
toggleable="true">
<ace:ajax event="close" listener="#{panelListener.close}" render="status" />
<ace:ajax event="toggle" listener="#{panelListener.toggle}"
render="status"/>
I added some logging and the problem is that the AjaxBehavior that is
used to broadcast the events is not the AjaxBehavior that was initially
registered. I assume that the extra AjaxBehaviors that are created are
the cost of doing all the Facelets includes and such.
Mojarra
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@7629a4cb
AjaxBehavior.setListener:
/resources/examples/ace/panel/panelListener.xhtml @44,93
listener="#{panelListener.close}":
org.apache.el.MethodExpressionImpl@c35a2e13 for
org.icefaces.ace.component.ajax.AjaxBehavior@7629a4cb
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@28024808
AjaxBehavior.setListener:
/resources/examples/ace/panel/panelListener.xhtml @45,94
listener="#{panelListener.toggle}":
org.apache.el.MethodExpressionImpl@2fddf4db for
org.icefaces.ace.component.ajax.AjaxBehavior@28024808
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@2dc719bd
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@e478e18
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@7bc1d0fa
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@717f0c8f
AjaxBehavior.broadcast: calling for
org.icefaces.ace.component.ajax.AjaxBehavior@28024808
PanelListener.toggle: Toggle Event fired @ 10:56:17
MyFaces
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@37de41ce
AjaxBehavior.setListener:
/resources/examples/ace/panel/panelListener.xhtml at line 44 and column
93: org.apache.el.MethodExpressionImpl@c35a2e13 for
org.icefaces.ace.component.ajax.AjaxBehavior@37de41ce
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@60b25809
AjaxBehavior.setListener:
/resources/examples/ace/panel/panelListener.xhtml at line 45 and column
94: org.apache.el.MethodExpressionImpl@2fddf4db for
org.icefaces.ace.component.ajax.AjaxBehavior@60b25809
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@5cb1e877
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@24150c2c
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@61d22f35
AjaxBehavior: org.icefaces.ace.component.ajax.AjaxBehavior@2e1972bf
AjaxBehavior.broadcast: calling for
org.icefaces.ace.component.ajax.AjaxBehavior@24150c2c
AjaxBehavior.broadcast: no listener for
org.icefaces.ace.component.ajax.AjaxBehavior@24150c2c
Issue Links
- duplicates
-
ICE-7523 MyFaces 2: listeners registered with ace:ajax tags are not called
- Closed
Activity
yip.ng
created issue -
yip.ng
made changes -
Field | Original Value | New Value |
---|---|---|
Assignee | yip.ng [ yip.ng ] |
yip.ng
made changes -
Salesforce Case | [] | |
Assignee Priority | P1 |
Ken Fyten
made changes -
Salesforce Case | [] | |
Fix Version/s | 3.0 [ 10241 ] | |
Assignee | yip.ng [ yip.ng ] | Deryk Sinotte [ deryk.sinotte ] |
Deryk Sinotte
made changes -
Deryk Sinotte
made changes -
Deryk Sinotte
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Duplicate [ 3 ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
From Mark:
MyFaces does more state saving/restorating/tree-nuking than Mojarra, and AjaxBehaviour extends/implements StateHolder, but none of its fields participate in state saving, so they're likely getting lost.