Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 2.0.1, EE-2.0.0.GA
-
Fix Version/s: 2.1-Beta, 3.0, EE-2.0.0.GA_P01
-
Component/s: ICE-Components
-
Labels:None
-
Environment:ICEfaces 2.0 only
Description
-
Hide
- Case10097MenuBarExample.war
- 9.33 MB
- Arran Mccullough
-
- META-INF/MANIFEST.MF 0.1 kB
- META-INF/context.xml 0.1 kB
- WEB-INF/classes/com/.../example/Item.class 0.8 kB
- WEB-INF/classes/.../example/TestBean.class 3 kB
- WEB-INF/lib/commons-beanutils.jar 223 kB
- WEB-INF/lib/commons-collections.jar 554 kB
- WEB-INF/lib/commons-digester.jar 137 kB
- WEB-INF/lib/commons-logging.jar 30 kB
- WEB-INF/lib/icefaces-ace.jar 2.34 MB
- WEB-INF/lib/icefaces-compat.jar 2.65 MB
- WEB-INF/lib/icefaces.jar 198 kB
- WEB-INF/lib/jsf-api.jar 602 kB
- WEB-INF/lib/jsf-impl.jar 1.81 MB
- WEB-INF/lib/jxl.jar 689 kB
- WEB-INF/.../krysalis-jCharts-1.0.0-alpha-1.jar 148 kB
- WEB-INF/web.xml 2 kB
- welcomeICEfaces.xhtml 2 kB
-
- screenshot-01.png
- 169 kB
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
same behavior happens for actions as well.
In the class MenuItems, the method processDecodes is calling super.processDecodes(context); . The issue seems MenuItems inherits from MenuItemBase, and in super.processDecodes (MenuItemBase.processDecodes) it iterates through the MenuItems children a second time.
processDecodes() exactly the same in 2.0 as in 1.8. Yet problem doesn't occur in 1.8. Must be something else? Also code is not just used by case of dynamic menu items. Can't just blindly remove the super processDecodes()?
The real problem is in javax.faces.component.UIComponentBase#getFacetsAndChildren. For the dynamic MenuItems component, it returns empty in 1.8 but the dynamically-added children in 2.0. See screenshot 1. I did a compare of the function from mojarra 1.2 and mojarra 2.0.3. They are exactly the same as well. Unexplainable at this level. Maybe something even deeper in the mojarra or framework code?
Alright, pushing this back (out of 2.0.2) due to complexity.
As per Mark's comments in mtg about different state-saving strategy in ICEfaces 2, safe to just remove call to super processDecodes.
Revision: 24562
Modified : /icefaces2/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/menubar/MenuItems.java
Revision: 24563
Modified : /icefaces2/branches/icefaces-2.0.x-maintenance/icefaces/compat/components/src/main/java/com/icesoft/faces/component/menubar/MenuItems.java
Test case that shows the issue, built for Tomcat