Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.0.RC1
-
Fix Version/s: 3.0.1, EE-3.0.0.GA
-
Component/s: Framework
-
Labels:None
-
Environment:Tomcat 7.0.12
ICEfaces 3RC1a
Description
When an attempt is made to set back to '0' the following response comes back in the console:
<?xml version='1.0' encoding='UTF-8'?>
<partial-response><changes><update id="javax.faces.ViewState"><![CDATA[574103076592712092:7902382816915448980]]></update><eval><![CDATA[alert('Invalid Cycle');]]></eval><extension aceCallbackParam="validationFailed">{"validationFailed":false}</extension></changes></partial-response>
When the value is not set to '0', the component updates as expected.
Attached is a war file and source code for a test case.
-
Hide
- Test_war_exploded.war
- 7.55 MB
- Brad Kroeger
-
- WEB-INF/classes/BackingBean.class 2 kB
- WEB-INF/lib/icefaces-ace.jar 1.39 MB
- WEB-INF/lib/icefaces-compat.jar 2.34 MB
- WEB-INF/lib/icefaces.jar 267 kB
- WEB-INF/.../krysalis-jCharts-1.0.0-alpha-1.jar 151 kB
- WEB-INF/lib/commons-beanutils.jar 226 kB
- WEB-INF/lib/commons-collections.jar 558 kB
- WEB-INF/lib/jstl.jar 20 kB
- WEB-INF/lib/jxl.jar 708 kB
- WEB-INF/lib/commons-digester.jar 140 kB
- WEB-INF/lib/commons-logging.jar 52 kB
- WEB-INF/lib/javax.faces.jar 2.46 MB
- WEB-INF/faces-config.xml 0.3 kB
- WEB-INF/web.xml 3 kB
- index.jsp 0.0 kB
- test.xhtml 3 kB
- META-INF/MANIFEST.MF 0.0 kB
-
- Test.zip
- 4 kB
- Brad Kroeger
-
Hide
- Test2.zip
- 5 kB
- Ted Goddard
-
- Test/src/BackingBean.java 1 kB
- Test/Test.iml 1.0 kB
- Test/web/index.jsp 0.0 kB
- Test/web/META-INF/MANIFEST.MF 0.0 kB
- Test/web/test.xhtml 3 kB
- Test/web/WEB-INF/faces-config.xml 0.3 kB
- Test/web/WEB-INF/web.xml 3 kB
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Can see the issue with the following code:
<h:selectOneMenu id="testMenu"
value="#
">
<f:selectItem itemValue="1" itemLabel="One & One"/>
<f:selectItem itemValue="2" itemLabel="Two and Two"/>
</h:selectOneMenu>
Since the DOM parser version changes the order of value="" and selected="", it is essentially guaranteed to modify the TextNode for any interaction with the component, thereby forcing an update of that component.
Modified Test2.zip to include ampersand markup as well as changed the test logic to accept a selection of "3" (this allows the testing of changed input values that should not result in a page update).
Regex implementation checked in but not verified with multiple select cases. The previous intermediate-DOM based version could not be repaired due to the output differences between the original component and the intermediate DOM output.
The encodeEnd() method of MenuRenderer which makes use of FastStringWriter to embed the text node in the DOM does allow for a "multiple" select option.
Source code