Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.1.0.BETA1
-
Component/s: ACE-Components
-
Labels:None
-
Environment:Tomcat 7, all browsers
-
Assignee Priority:P1
Description
All errors below occur ONLY when the autoCompleteEntry being used currently has an inField label. As the issues provide some slightly different errors/effects dependent on which of the two pages I tested on, I will attempt to differentiate between them as best I can.
Error 1: Upon typing the initial letter into an autoCompleteEntry after a refresh or server start, an error is thrown. The dropdown menu for possible selections does not appear until either that initial letter is deleted, or another letter is added on.
- /autoCompleteEntryOnly: The error thrown is: [window] Error [status: malformedXML code: 200]: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMHTMLDivElement.replaceChild]
- /autoCompleteEntryDynAttribute: The error thrown is: [window] Error [status: malformedXML code: 200]: During update: frm:textEntryscript not found.
As a note, this issue appear whenever the initial letter is typed in an inField-label component. If a different label set up is used, the error will appear upon switching to inField and typing a letter.
Error 2: Clearing the entire field and pressing the enter key often causes the error: '[window] Error [status: malformedXML code: 200]: During update: frm:textEntryscript not found' to be thrown. When it is, the mouse focus does not leave the input field, and the label reappears within the field. From that point on, until its deletion, the label is treated as standard input by the component. Removing and replacing focus do not clear the label as it should. Often, though not always, the label itself is seen as the entry for auto-complete, causing ex. 'Labelle' to appear in the dropdown menu. I have seen it both maintain and ignore label css styling.
- /autoCompleteEntryDynAttribute: The error seems to happen less frequently than in /*Only. Sometimes, if the entire label is deleted, the error is thrown again and the label is re-generated. I have not observed this occurring in /*Only
Tests can be found at http://server.ice:8888/svn/repo/qa/trunk/Regression-Icefaces2/Sparkle/Nightly/autoCompleteEntry/
The specific tests that I was using to test this were /autoCompleteEntryOnly and /autoCompleteEntryDynAttribute.
Error 1: Upon typing the initial letter into an autoCompleteEntry after a refresh or server start, an error is thrown. The dropdown menu for possible selections does not appear until either that initial letter is deleted, or another letter is added on.
- /autoCompleteEntryOnly: The error thrown is: [window] Error [status: malformedXML code: 200]: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMHTMLDivElement.replaceChild]
- /autoCompleteEntryDynAttribute: The error thrown is: [window] Error [status: malformedXML code: 200]: During update: frm:textEntryscript not found.
As a note, this issue appear whenever the initial letter is typed in an inField-label component. If a different label set up is used, the error will appear upon switching to inField and typing a letter.
Error 2: Clearing the entire field and pressing the enter key often causes the error: '[window] Error [status: malformedXML code: 200]: During update: frm:textEntryscript not found' to be thrown. When it is, the mouse focus does not leave the input field, and the label reappears within the field. From that point on, until its deletion, the label is treated as standard input by the component. Removing and replacing focus do not clear the label as it should. Often, though not always, the label itself is seen as the entry for auto-complete, causing ex. 'Labelle' to appear in the dropdown menu. I have seen it both maintain and ignore label css styling.
- /autoCompleteEntryDynAttribute: The error seems to happen less frequently than in /*Only. Sometimes, if the entire label is deleted, the error is thrown again and the label is re-generated. I have not observed this occurring in /*Only
Tests can be found at http://server.ice:8888/svn/repo/qa/trunk/Regression-Icefaces2/Sparkle/Nightly/autoCompleteEntry/
The specific tests that I was using to test this were /autoCompleteEntryOnly and /autoCompleteEntryDynAttribute.
All the errors are from jsf.js and bridge.js. jsf.js is minified; brigde.js error lines just point to error logging functions. Impossible to debug further. See screenshot-01.png.
The errors most likely come from DOM diff. and DOM updates. The rendering of the HTML and JavaScript is actually correct, only that when there is an infield label, both the input field and the JS get changed and trigger extra DOM updates. See screenshot-02.png.
Old input field and its states would be totally wiped out. New JS would try to create new instance from scratch. Meanwhile, other parts of the component (e.g. original component instance, hidden fields, other JS states) would be left in limbo.
These are the same old problems of syncing server and client states, and framework and client component (sometimes even multiple instances of client component) trying to control the same sections of HTML and CSS. See, for example, my comment at: http://jira.icesoft.org/browse/ICE-7388?focusedCommentId=37272&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_37272.
See all the problems in
ICE-7361, ICE-7388,ICE-7505,ICE-7506,ICE-7601......