Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.7
-
Fix Version/s: 1.7.1
-
Component/s: ICE-Components
-
Labels:None
-
Environment:any
-
Support Case References:
Description
see attached source files for further information
-
- ContactData.java
- 1.0 kB
- Michael Thiem
-
- CustomMenuModel.java
- 2 kB
- Michael Thiem
-
Hide
- ICE-3064.war
- 7.29 MB
- yip.ng
-
- META-INF/MANIFEST.MF 0.1 kB
- WEB-INF/classes/test/ContactData.class 1 kB
- WEB-INF/classes/test/ContactData.java 0.9 kB
- WEB-INF/classes/.../CustomMenuModel.class 2 kB
- WEB-INF/classes/.../CustomMenuModel.java 2 kB
- WEB-INF/classes/test/MenuHandler.class 3 kB
- WEB-INF/classes/test/MenuHandler.java 2 kB
- WEB-INF/faces-config.xml 0.6 kB
- WEB-INF/html_basic.tld 244 kB
- WEB-INF/jsf_core.tld 25 kB
- WEB-INF/lib/backport-util-concurrent.jar 319 kB
- WEB-INF/lib/commons-beanutils.jar 184 kB
- WEB-INF/lib/commons-collections.jar 558 kB
- WEB-INF/lib/commons-digester.jar 140 kB
- WEB-INF/lib/commons-discovery.jar 70 kB
- WEB-INF/lib/commons-el.jar 110 kB
- WEB-INF/lib/commons-fileupload.jar 87 kB
- WEB-INF/lib/commons-logging.jar 52 kB
- WEB-INF/lib/el-ri.jar 97 kB
- WEB-INF/lib/icefaces-comps.jar 1.70 MB
- WEB-INF/lib/icefaces-facelets.jar 593 kB
- WEB-INF/lib/icefaces.jar 1006 kB
- WEB-INF/lib/jsf-api-1.2.jar 316 kB
- WEB-INF/lib/jsf-api.jar 303 kB
- WEB-INF/lib/jsf-impl-1.2.jar 1.15 MB
- WEB-INF/lib/jsf-impl.jar 1.09 MB
- WEB-INF/lib/jstl.jar 21 kB
- WEB-INF/.../krysalis-jCharts-1.0.0-alpha-1.jar 151 kB
- index.jsp 0.2 kB
- menuitems.jspx 3 kB
-
Hide
- ICE-3064.zip
- 146 kB
- yip.ng
-
- ICE-3064/.classpath 0.5 kB
- ICE-3064/.mymetadata 0.3 kB
- ICE-3064/.project 1 kB
- ICE-3064/build.xml 0.9 kB
- ICE-3064/src/test/ContactData.java 0.9 kB
- ICE-3064/src/test/CustomMenuModel.java 2 kB
- ICE-3064/src/test/MenuHandler.java 2 kB
- ICE-3064/web/index.jsp 0.2 kB
- ICE-3064/web/menuitems.jspx 3 kB
- ICE-3064/web/META-INF/MANIFEST.MF 0.0 kB
- ICE-3064/web/WEB-INF/.faces-config.mex 0.1 kB
- ICE-3064/web/WEB-INF/faces-config.xml 0.6 kB
- ICE-3064/web/WEB-INF/html_basic.tld 244 kB
- ICE-3064/web/WEB-INF/jsf_core.tld 25 kB
- ICE-3064/web/WEB-INF/web.xml 3 kB
- ICE-3064/web/xmlhttp/.../css-images/add.gif 0.1 kB
- ICE-3064/web/.../css-images/arrow-ff-dis.gif 0.9 kB
- ICE-3064/web/.../css-images/arrow-ff.gif 0.2 kB
- ICE-3064/web/.../arrow-first-dis.gif 0.1 kB
- ICE-3064/web/.../css-images/arrow-first.gif 0.2 kB
- ICE-3064/web/.../css-images/arrow-fr.gif 0.3 kB
- ICE-3064/web/.../arrow-last-dis.gif 0.9 kB
- ICE-3064/web/.../css-images/arrow-last.gif 0.3 kB
- ICE-3064/web/.../arrow-next-dis.gif 0.9 kB
- ICE-3064/web/.../css-images/arrow-next.gif 0.2 kB
- ICE-3064/web/.../arrow-previous-dis.gif 0.9 kB
- ICE-3064/web/.../arrow-previous.gif 0.2 kB
- ICE-3064/web/.../css-images/arrow-rw-dis.gif 0.1 kB
- ICE-3064/web/.../cal_arrow_left.gif 0.2 kB
- ICE-3064/web/.../cal_arrow_right.gif 0.2 kB
-
- MenuHandler.java
- 2 kB
- Michael Thiem
-
- newmenu2.jspx
- 3 kB
- Michael Thiem
-
Hide
- Test_MenuItems.war
- 6.40 MB
- Michael Thiem
-
- META-INF/MANIFEST.MF 0.0 kB
- WEB-INF/classes/test/ContactData.class 1 kB
- WEB-INF/classes/.../CustomMenuModel.class 2 kB
- WEB-INF/classes/test/MenuHandler.class 3 kB
- WEB-INF/faces-config.xml 0.6 kB
- WEB-INF/html_basic.tld 244 kB
- WEB-INF/jsf_core.tld 25 kB
- WEB-INF/lib/backport-util-concurrent.jar 319 kB
- WEB-INF/lib/commons-beanutils.jar 115 kB
- WEB-INF/lib/commons-collections.jar 165 kB
- WEB-INF/lib/commons-digester.jar 139 kB
- WEB-INF/lib/commons-fileupload.jar 87 kB
- WEB-INF/lib/commons-logging.jar 31 kB
- WEB-INF/lib/el-api.jar 24 kB
- WEB-INF/lib/el-ri.jar 97 kB
- WEB-INF/lib/icefaces-comps.jar 1.68 MB
- WEB-INF/lib/icefaces-facelets.jar 593 kB
- WEB-INF/lib/icefaces.jar 868 kB
- WEB-INF/lib/jsf-api.jar 351 kB
- WEB-INF/lib/jsf-impl.jar 669 kB
- WEB-INF/lib/jstl.jar 21 kB
- WEB-INF/.../krysalis-jCharts-1.0.0-alpha-1.jar 151 kB
- WEB-INF/lib/standard.jar 385 kB
- WEB-INF/lib/xercesImpl.jar 1.15 MB
- WEB-INF/lib/xml-apis.jar 190 kB
- WEB-INF/web.xml 3 kB
- index.jsp 0.2 kB
- menuitems.jspx 3 kB
- xmlhttp/css/royale/css-images/add.gif 0.1 kB
- xmlhttp/css/.../css-images/arrow-ff-dis.gif 0.9 kB
-
Hide
- Test_MenuItems.zip
- 154 kB
- Michael Thiem
-
- Test_MenuItems/.classpath 0.5 kB
- Test_MenuItems/.mymetadata 0.3 kB
- Test_MenuItems/.project 1 kB
- Test_MenuItems/src/test/ContactData.java 0.9 kB
- Test_MenuItems/src/.../CustomMenuModel.java 2 kB
- Test_MenuItems/src/test/MenuHandler.java 2 kB
- Test_MenuItems/WebRoot/index.jsp 0.2 kB
- Test_MenuItems/WebRoot/menuitems.jspx 3 kB
- Test_MenuItems/WebRoot/.../MANIFEST.MF 0.0 kB
- Test_MenuItems/WebRoot/.../.faces-config.mex 0.1 kB
- Test_MenuItems/WebRoot/.../ContactData.class 1 kB
- Test_MenuItems/.../CustomMenuModel.class 2 kB
- Test_MenuItems/WebRoot/.../MenuHandler.class 3 kB
- Test_MenuItems/WebRoot/.../faces-config.xml 0.6 kB
- Test_MenuItems/WebRoot/.../html_basic.tld 244 kB
- Test_MenuItems/WebRoot/.../jsf_core.tld 25 kB
- Test_MenuItems/WebRoot/WEB-INF/web.xml 3 kB
- Test_MenuItems/WebRoot/.../add.gif 0.1 kB
- Test_MenuItems/WebRoot/.../arrow-ff-dis.gif 0.9 kB
- Test_MenuItems/WebRoot/.../arrow-ff.gif 0.2 kB
- Test_MenuItems/.../arrow-first-dis.gif 0.1 kB
- Test_MenuItems/WebRoot/.../arrow-first.gif 0.2 kB
- Test_MenuItems/WebRoot/.../arrow-fr.gif 0.3 kB
- Test_MenuItems/.../arrow-last-dis.gif 0.9 kB
- Test_MenuItems/WebRoot/.../arrow-last.gif 0.3 kB
- Test_MenuItems/.../arrow-next-dis.gif 0.9 kB
- Test_MenuItems/WebRoot/.../arrow-next.gif 0.2 kB
- Test_MenuItems/.../arrow-previous-dis.gif 0.9 kB
- Test_MenuItems/.../arrow-previous.gif 0.2 kB
- Test_MenuItems/WebRoot/.../arrow-rw-dis.gif 0.1 kB
-
- js_error.jpg
- 111 kB
-
- screenshot.jpg
- 197 kB
-
- screenshot-1.jpg
- 117 kB
-
- screenshot-2.jpg
- 120 kB
-
- screenshot-3.jpg
- 164 kB
-
- screenshot-4.jpg
- 75 kB
-
- screenshot-5.jpg
- 183 kB
-
- screenshot-6.jpg
- 148 kB
-
- screenshot-7.jpg
- 78 kB
-
- screenshot-8.jpg
- 81 kB
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
singleton menu model data
table model data
sample jspx file
tested on tomcat 5.5
sources
Can't get the sample app. to run. Keeps saying:
May 30, 2008 11:18:04 AM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
May 30, 2008 11:18:04 AM org.apache.catalina.core.StandardContext start
SEVERE: Context [/ICE-3064] startup failed due to previous errors
The problem was caused by using the same menu items component for all rows of the table. This produced menu items with same id's in different rows, which messed up the rendering.
Suggested fix from Mark:
Clear out cached clientId value so that a unique clientId will be generated when menu items are in a UIData component.
From Michael:
I tested the attached demo app and it is still not working correctly. The menubar is shown in every table row now, but as soon as a menuitem is selected a javascript error occurs and the application doesn't respond anymore.
Couldn't reproduce error. Worked OK when run in Intellij and Tomcat 6 with demo app code integrated in component showcase. No JavaScript error on client side, and event handler was called properly on server side. See attached screenshot-3.
(Still can't get the sample app. to run standalone. always gets this error:
SEVERE: Error listenerStart)
Finally got it to run standalone. But still no error. The result was exactly the same as running embedded in component showcase.
Run without Intellij by manually deploying to Tomcat 6. Still no error. See screenshot-5.
I see the same behaviour in your test application. Cleared all temporary browser data to be sure I'm not working with any cached code. The issue happens in Firefox and IE. Looking at the Javascript code shows that the following method causes this problem:
ice-extras.js
hideMenuWithId: function(menu) {
if (menu)
return;
}
The expression menu = $(menu); assigns NULL to menu which causes an exception and the page to be unresponsible until a browser refresh is done.
Stepped through the JavaScript many, many times. The "menu" variable did have a valid value every time and the indicator at the bottom right corner of the browser remained green. Not once did I encounter any error. See screenshot-6.
Attached modified source zip file with build script added. To build the war file, modify the import file location (for build-common.xml) in build.xml and execute the default target (tomcat6.0).
Sam, please take the latest source that Yip attached to this case and try to reproduce the JS errors that Michael is still reporting.
Thanks to Sam's testing efforts, I am finally able to consistently reproduce the error. At first glance, the cause looks like a hidden bug in the menu handling JavaScript that gets exposed when certain sequences of mouse hover and click events occur on overlapping menu div areas. (I tended to click on the edges of menu divs, which don't overlap. Maybe that's why the error never showed up on my machine.)
From Michael: (See screenshot-7)
When you hover over a menuItem you can see the list of submenus. If you look at their contents you will see that the first menu item is empty and the second contains the label of menuItem one and two.
This is yet another hidden bug (CSS?) exposed by the fix for ICE-3076.
From Michael:
I tested it with the latest branch and besides a javascript error I get, everything seems to work fine now. The javascript error doesn't seem to have any impact on the functionality and occurs sporadically after some time of unresponsiveness of the client. The firebug error log is attached. Also, there's one more thing which I'm not sure of if it should be regarded as a bug or not. You can simply reproduce it by following the steps below:
1. hover over the first menuitem
2. select the first subitem 'Test1'
3. the sub menuitem's actionlistener will be called and executed as expected and
4. right after that the focus is set to the next menubar component which causes its submenus to expand automatically
This might be a bit confusing for the user. I would expect that after the action has been executed the submenus of another menuitem should only expand when
a user explicitly clicks on a menuItem.
About the JS error:
nsSessionStore.js (C:\Program Files\Mozilla Firefox\components\nsSessionStore.js) is a Firefox JS program. If you google the error, you will find a lot of people have had the same error. So it's nothing to do with ICEfaces?
"This Error is being generated in the Firefox components script that stores the session data for a window."
"I had that sort of nonsense when upgrading versions of FF and TB until I started removing all of the program directory prior to deploying the new version."
"I uninstalled Firefox. Deleted the directory and removed the references in the registry. I then reinstalled a fresh copy of firefox and all plugins. So far I have not had any more problems."
About the on hover event:
This is expected behavior with the current menu item event handling logic. It is caused by the overlapping of menu item div's. To change this behavior, we need to figure out how to distinguish between the two types of hover event: normal hover event and hover event as a result of clicking an overlapping menu item div. (There could also be more than two layers of overlap and this could complicate things further?) And then we need to change the renderer and/or JavaScript accordingly.
backing bean code