Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.1.0.BETA1
-
Fix Version/s: 3.1
-
Component/s: QA, Sample Apps
-
Labels:None
-
Environment:ICEfaces3/trunk rev. 29153
Browsers: IE7, Firefox3.6/12, Chrome19
Server: Tomcat6
-
Assignee Priority:P1
Description
New failures:
Firefox/Chrome:
ICE-4317 Fails manually in Firefox (3.6/12) and Chrome: after entering text into text entry and selecting check boxes and radio buttons, when the 'Clear All' button is clicked, the text entry, the check boxes and the radio buttons are not cleared. Passes manually in IE only.
ICE-3190 Fails manually in Firefox (3.6/12): after entering text in the text entries, clicking the 'Clean' button does not clear the text entry and the check box components. Test passes manually in IE and Chrome.
ICE-2113 Fails manually: the modal popup panel renders as in attached image in FF and IE (2113.png), and clicking the 'Close' button on the modal popup panel does not un-check the check box, as expected by the test.
Internet Explorer:
ICE-3057 There is a rendering issue when clicking on the Tab1 tab pane (IE only), see attached 3057.png.
ICE-1993 - fails in IE - city, state and country not rendered on page after selecting from the autocomplete drop down list.
Sample Applications:
1) elementUpdate:
Firefox and Chrome: InputElementsCommon - times out waiting for Attribute after clicking on 'Class Name' button. Fails manually when testing common "className" attribute.
2) auctionMonitor:
Chrome:
Rendering issue, when clicking to bid on an item a yellow rectangle renders, highlighting the first row in the table. This cannot be removed until clicking outside the bid table, as example to sort items by bids. Screenshot attached, auctionMonitor-render.png.
Firefox:
chat fails; first user that joins chat cannot send a message.
Internet Explorer:
chat fails, a JS error happens when user1 clicks to join chat. (attachment chat-IE.png)
Firefox/Chrome:
Internet Explorer:
Sample Applications:
1) elementUpdate:
Firefox and Chrome: InputElementsCommon - times out waiting for Attribute after clicking on 'Class Name' button. Fails manually when testing common "className" attribute.
2) auctionMonitor:
Chrome:
Rendering issue, when clicking to bid on an item a yellow rectangle renders, highlighting the first row in the table. This cannot be removed until clicking outside the bid table, as example to sort items by bids. Screenshot attached, auctionMonitor-render.png.
Firefox:
chat fails; first user that joins chat cannot send a message.
Internet Explorer:
chat fails, a JS error happens when user1 clicks to join chat. (attachment chat-IE.png)
So looks like at least some of the issues are our own fault. Changes were made to jsf.js as per:
http://java.net/jira/browse/JAVASERVERFACES-2381
We submitted this as part of suggested fix to help with our own DOM diff work but I can't find the specific case. Perhaps this one:
http://jira.icesoft.org/browse/ICE-7803
In any event, the change was to how the attributes of a DOM node where retrieved and compared. Here's the relevant diff:
[deryk] resources > svn diff -r9903:9904 jsf.js
Index: jsf.js
===================================================================
— jsf.js (revision 9903)
+++ jsf.js (revision 9904)
@@ -691,8 +691,8 @@
// First, copy over core attributes
for (iIndex = 0,iLength = coreElementAttributes.length; iIndex < iLength; iIndex++) {
attributeName = coreElementAttributes[iIndex];
+ newValue = source.getAttribute(attributeName);
+ oldValue = target.getAttribute(attributeName);
if (oldValue != newValue) { target[attributeName] = newValue; }
@@ -702,8 +702,8 @@
if (target.nodeName.toLowerCase() === 'input') {
for (iIndex = 0,iLength = inputElementAttributes.length; iIndex < iLength; iIndex++) {
attributeName = inputElementAttributes[iIndex];
+ newValue = source.getAttribute(attributeName);
+ oldValue = target.getAttribute(attributeName);
if (oldValue != newValue) { target[attributeName] = newValue; }
The problem is that some attributes exist that can only be retrieved the "old" way. For example, if I try to get "className":
var theInputText = document.getElementById('j_idt22:in');
<input class="A" id="j_idt22:in" lang="en" name="j_idt22:in" size="15" style title="A" type="text" value="A">
theInputText['className'];
"A"
theInputText.getAttribute('className');
null
This is because "className" is a hard attribute of the node in the DOM, but "className" is not in the collection of attributes. In that collection, it's called "class".