Details
Description
This results from the Listener to handle the event twice.
-
Hide
- AJAXTest-ViewRebuilt.zip
- 7.07 MB
- Christian Heike
-
- AJAXTestPortlet/.project 1 kB
- AJAXTestPortlet/.classpath 1 kB
- AJAXTestPortlet/.settings/.jsdtscope 0.5 kB
- AJAXTestPortlet/.../org.eclipse.jdt.core.prefs 5 kB
- AJAXTestPortlet/.../org.eclipse.wst.common.component 0.6 kB
- AJAXTestPortlet/.../org.eclipse.wst.common.project.facet.core.prefs.xml 0.2 kB
- AJAXTestPortlet/.../org.eclipse.wst.common.project.facet.core.xml 0.3 kB
- AJAXTestPortlet/.../org.eclipse.wst.jsdt.ui.superType.container 0.0 kB
- AJAXTestPortlet/.../org.eclipse.wst.jsdt.ui.superType.name 0.0 kB
- AJAXTestPortlet/.../org.maven.ide.eclipse.prefs 0.2 kB
- AJAXTestPortlet/WebContent/.../MANIFEST.MF 0.0 kB
- AJAXTestPortlet/.../faces-config.xml 0.5 kB
- AJAXTestPortlet/.../FastInfoset.jar 285 kB
- AJAXTestPortlet/.../icefaces-ace.jar 2.71 MB
- AJAXTestPortlet/.../icefaces-compat.jar 4.04 MB
- AJAXTestPortlet/WebContent/.../icefaces.jar 202 kB
- AJAXTestPortlet/WebContent/.../icepush.jar 238 kB
- AJAXTestPortlet/.../portletfaces-bridge.jar 235 kB
- AJAXTestPortlet/.../liferay-display.xml 0.3 kB
- AJAXTestPortlet/.../liferay-plugin-package.properties 0.2 kB
- AJAXTestPortlet/.../liferay-plugin-package.xml 0.7 kB
- AJAXTestPortlet/.../liferay-portlet.xml 0.5 kB
- AJAXTestPortlet/WebContent/.../portlet.xml 1.0 kB
- AJAXTestPortlet/WebContent/.../web.xml 1 kB
- AJAXTestPortlet/WebContent/css/main.css 0.0 kB
- AJAXTestPortlet/WebContent/icon.png 0.7 kB
- AJAXTestPortlet/WebContent/js/main.js 0.0 kB
- AJAXTestPortlet/WebContent/.../main.xhtml 0.6 kB
- AJAXTestPortlet/.../navigate1.xhtml 0.6 kB
- AJAXTestPortlet/.../navigate2.xhtml 0.6 kB
-
- ICE-6643-2.patch
- 3 kB
- Deryk Sinotte
-
- Patch - Icefaces_Events.patch
- 14 kB
- Christian Heike
-
- Patch - Icefaces_Events.patch
- 13 kB
- Christian Heike
-
Hide
- test.zip
- 256 kB
- Ted Goddard
-
- WEB-INF/classes/.../ControllerAction.class 3 kB
- WEB-INF/classes/.../ControllerAction.java 2 kB
- WEB-INF/classes/se/.../menu/IAction.class 0.2 kB
- WEB-INF/classes/se/.../menu/IAction.java 0.1 kB
- WEB-INF/classes/se/.../menu/IMenuItem.class 0.5 kB
- WEB-INF/classes/se/.../menu/IMenuItem.java 1 kB
- WEB-INF/classes/se/test/menu/Menu.class 1 kB
- WEB-INF/classes/se/test/menu/Menu.java 0.8 kB
- WEB-INF/classes/se/.../menu/MenuItem.class 2 kB
- WEB-INF/classes/se/.../menu/MenuItem.java 2 kB
- WEB-INF/classes/.../NavigationAction.class 1 kB
- WEB-INF/classes/.../NavigationAction.java 0.9 kB
- WEB-INF/classes/se/.../menu/ParamBean.class 2 kB
- WEB-INF/classes/se/.../menu/ParamBean.java 1 kB
- WEB-INF/classes/support/TestBean.class 0.4 kB
- WEB-INF/classes/support/TestBean.java 0.2 kB
- WEB-INF/web.xml 4 kB
- WEB-INF/faces-config.xml 2 kB
- css/images/banner_bg.gif 0.6 kB
- css/images/banner_hdr_compsuite.jpg 12 kB
- css/images/banner_logo.jpg 8 kB
- css/images/bgslice_footer.gif 0.3 kB
- css/images/bgslice_footer.jpg 17 kB
- css/images/favicon.ico 0.3 kB
- css/images/footer_faces.jpg 34 kB
- css/images/icon_info.gif 0.8 kB
- css/images/.../tree_folder_closed.gif 0.6 kB
- css/images/.../tree_folder_open.gif 0.6 kB
- css/images/.../tree_line_blank.gif 0.1 kB
- css/images/.../tree_line_last_node.gif 0.1 kB
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Porting the sample to a Servlet test case shows the following in the log when clicking on "Greetings":
SEVERE: JSF1007: Duplicate component ID j_idt7:menuForm:menuForm_windowviewid found in view.
Attached test.zip contains files to be added to component-showcase to reproduce both ICE-4090 and this issue in a Servlet application.
The most recent fix uses the following technique:
+ //guard against duplicates within the same JSF lifecycle
+ if (null != context.getAttributes().get(componentId))
+ context.getAttributes().put(componentId, componentId);
+
It was observed that the duplicate components were added during the same lifecycle, so the above check ensures that the component is added only once per FacesContext instance. It is possible that this technique makes some of the other duplicate-checking obsolete, however, this may not be the case since other cases of duplication result from differences in event handling after state saving (this is why the use of component attribute markers is dangerous since the markers may be state-saved with the component even though the transient component is not saved).
Please test the latest trunk in the portal environment that previously reproduced the problem. (It has also been reproduced with a Servlet, but the fix needs verification in a Portlet environment.)
So there were changes to the following areas that ended up requiring some effort to ensure everything was stable:
- ICEfaces core
- ICEfaces components
- JSF libs
- PortletFaces bridge
I updated to the latest code in all the affected areas and modified the examples based on these new libraries. After stabilizing things and re-testing, I think we're back to a point where the attached test case as well as the modified component showcase are both behaving as desired so I'm marking as fixed.
Neil was kind enough to make a change that should benefit developers looking to utilise init parameters in both the portlet.xml and web.xml files.
Solution for the problem.