ICEfaces
  1. ICEfaces
  2. ICE-8219

REGRESSION - inField Label causes bugs in ace:AutoCompleteEntry

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.1.0.BETA1
    • Fix Version/s: 3.1.0.RC1, 3.1
    • 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.
      1. screenshot-01.png
        294 kB
      2. screenshot-02.png
        208 kB
      3. screenshot-03.png
        97 kB
      4. screenshot-04.png
        220 kB
      5. screenshot-05.png
        267 kB

        Activity

        Brennan Mckinney created issue -
        Ken Fyten made changes -
        Field Original Value New Value
        Summary inField Label causes bugs in ace:AutoCompleteEntry REGRESSION - inField Label causes bugs in ace:AutoCompleteEntry
        Salesforce Case []
        Fix Version/s 3.1.0.BETA2 [ 10336 ]
        Fix Version/s 3.1 [ 10312 ]
        Assignee Priority P1
        Assignee yip.ng [ yip.ng ]
        yip.ng made changes -
        Attachment screenshot-01.png [ 14530 ]
        yip.ng made changes -
        Attachment screenshot-02.png [ 14531 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #29355 Wed Jun 06 17:15:52 MDT 2012 art.zambrano ICE-8219 modified some client ids in the component to prevent bridge errors when using inField labels
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/autocompleteentry/AutoCompleteEntryRenderer.java
        Hide
        yip.ng added a comment - - edited

        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 ......

        Show
        yip.ng added a comment - - edited 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 ......
        yip.ng made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Brennan Mckinney added a comment -

        Error 1 has been fixed. Error 2 is still present, though it no longer seems to be throwing any errors.

        Submit a blank input when the component has an inField label. It doesn't always happen (seems to be about one in three, roughly), but the label itself will begin to be treated as input.

        Show
        Brennan Mckinney added a comment - Error 1 has been fixed. Error 2 is still present, though it no longer seems to be throwing any errors. Submit a blank input when the component has an inField label. It doesn't always happen (seems to be about one in three, roughly), but the label itself will begin to be treated as input.
        Brennan Mckinney made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        yip.ng made changes -
        Attachment screenshot-03.png [ 14543 ]
        Ken Fyten made changes -
        Fix Version/s 3.1.0.RC1 [ 10337 ]
        Fix Version/s 3.1.0.BETA2 [ 10336 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #29438 Mon Jun 11 16:14:00 MDT 2012 yip.ng ICE-8219: REGRESSION - inField Label causes bugs in ace:AutoCompleteEntry.
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/autocompleteentry/AutoCompleteEntryRenderer.java
        yip.ng made changes -
        Attachment screenshot-04.png [ 14555 ]
        Hide
        yip.ng added a comment - - edited

        Still the same old problem of DOM diff. and DOM updates messing up the client-side states. See screenshot-03.png. Also need to sync with framework focus management. (Note: framework focus management occasionally behaves inconsistently. There are also all other kinds of focus/blur management, in both the markup and the component JS. See screenshot-04.png and screenshot-05.png.)

        Modified: C:\svn\ossrepo\icefaces3\trunk\icefaces\ace\component\src\org\icefaces\ace\component\autocompleteentry\AutoCompleteEntryRenderer.java
        Completed: At revision: 29438

        Show
        yip.ng added a comment - - edited Still the same old problem of DOM diff. and DOM updates messing up the client-side states. See screenshot-03.png. Also need to sync with framework focus management. (Note: framework focus management occasionally behaves inconsistently. There are also all other kinds of focus/blur management, in both the markup and the component JS. See screenshot-04.png and screenshot-05.png.) Modified: C:\svn\ossrepo\icefaces3\trunk\icefaces\ace\component\src\org\icefaces\ace\component\autocompleteentry\AutoCompleteEntryRenderer.java Completed: At revision: 29438
        yip.ng made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        yip.ng made changes -
        Attachment screenshot-05.png [ 14556 ]
        Ken Fyten made changes -
        Salesforce Case []
        Security Private [ 10001 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            yip.ng
            Reporter:
            Brennan Mckinney
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: