ICEfaces
  1. ICEfaces
  2. ICE-10994

showcase - required indicator text cannot be edited (diffConfig='att')

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.1.1
    • Fix Version/s: EE-4.1.0.RC1, EE-4.1.0.GA, 4.2.BETA, 4.2
    • Component/s: ACE-Components, Sample Apps
    • Labels:
      None
    • Environment:
      ICEfaces 4 trunk r.48553
      Server: tomcat7
      Browser: IE8, FF3.6/41, Chrome49
      JSF: Mojarra 2.2.13
    • Assignee Priority:
      P1
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.)

      Description

      showcase with diffConfig='att' context parameter:
      <context-param>
      <param-name>org.icefaces.diffConfig</param-name>
      <param-value>att</param-value>
      </context-param>

      TextEntry, TextAreaEntry, AutoCompleteEntry, ComboBox > Indicator Text: once the validation ace:message's are rendered on page, the required indicator text can no longer be updated in the h:inputText required text, and therefore on the ACE input component. (diffConfig='att' specific) . If not using the diffConfig='att' the required text can be updated by blurring the h:inputText, and the tests pass.

      Steps:
      - disable, then re-enable the 'Required' checkbox -> validation messages are rendered on page.
      - enter new text for Required Indicator Text, and press 'Tab' or 'Enter' key -> the required text fails to update on page when either blurring the "Required Indicator Text", or when pressing the "Enter" key.



        Activity

        Hide
        Mircea Toma added a comment - - edited

        I can reproduce the issue only with IE8. Chrome and FF have the same behaviour after setting the org.icefaces.diffConfig parameter to true.

        Show
        Mircea Toma added a comment - - edited I can reproduce the issue only with IE8. Chrome and FF have the same behaviour after setting the org.icefaces.diffConfig parameter to true.
        Hide
        Mircea Toma added a comment - - edited

        IE9 and up works just fine when using the attribute updates. It seems that IE8 cannot handle the updates to its event listener attributes (in this case is the onchange attribute).

        Show
        Mircea Toma added a comment - - edited IE9 and up works just fine when using the attribute updates. It seems that IE8 cannot handle the updates to its event listener attributes (in this case is the onchange attribute).
        Hide
        Mircea Toma added a comment -

        Marking this as "Won't fix". We will need to document this as known issue. IE8 users can always revert to element-only DOM updates.

        Show
        Mircea Toma added a comment - Marking this as "Won't fix". We will need to document this as known issue. IE8 users can always revert to element-only DOM updates.
        Hide
        Liana Munroe added a comment -

        Tested with ICEfaces 4 trunk r 48616, Tomcat 7 and 8, FF 43, Chrome 48, IE 11.
        I was able to reproduce the issue that Carmen reported with all browsers.
        To reproduce:
        1.) Add the following to the showcase web.xml
        <context-param>
        <param-name>org.icefaces.diffConfig</param-name>
        <param-value>att</param-value>
        </context-param>
        2.) Using showcase in any browser navigate to Input > ace:textEntry > Indicator Text
        3.) Uncheck the "Required?" checkbox, then check the "Required?" checkbox.
        Required messages should now be displayed below the textEntrys
        4.) Click in the "Required Indicator Text" field and edit the text to ABC.
        5.) Press TAB, Enter or click away from the input field.
        6.) To the right of the ace:textEntrys, the Required indicators "This field is required." are not updated to the new value ABC.
        7.) If you use these steps without adding the context-param to the web.xml the required indicators are updated immediately after editing the Required Indicator Text field and pressing Enter, TAB or clicking elsewhere on the page.

        Show
        Liana Munroe added a comment - Tested with ICEfaces 4 trunk r 48616, Tomcat 7 and 8, FF 43, Chrome 48, IE 11. I was able to reproduce the issue that Carmen reported with all browsers. To reproduce: 1.) Add the following to the showcase web.xml <context-param> <param-name>org.icefaces.diffConfig</param-name> <param-value>att</param-value> </context-param> 2.) Using showcase in any browser navigate to Input > ace:textEntry > Indicator Text 3.) Uncheck the "Required?" checkbox, then check the "Required?" checkbox. Required messages should now be displayed below the textEntrys 4.) Click in the "Required Indicator Text" field and edit the text to ABC. 5.) Press TAB, Enter or click away from the input field. 6.) To the right of the ace:textEntrys, the Required indicators "This field is required." are not updated to the new value ABC. 7.) If you use these steps without adding the context-param to the web.xml the required indicators are updated immediately after editing the Required Indicator Text field and pressing Enter, TAB or clicking elsewhere on the page.
        Hide
        Mircea Toma added a comment -

        Managed to reproduce the issue but only when the server runs on Windows 7 with JDK 1.7. On a closer look one can see how the attribute updates for the "Required Indicator Text" field are reversed. In JDK 1.7 case the onchange attribute is the first one updated an then the disabled attribute. This seems to make the onchange listener non-functional since no postback is issued when tabbing out of the changed "Required Indicator Text" field.
        Debugging on the server side shows that the attribute updates are stored into a hash map, when updates are generated off this map the entries are iterated in a different order on JDK 1.8 vs JDK 1.7 (most probably the hash codes are generated slightly differently).

        This issue proves once again that enabling attribute updates cannot guarantee reliable and functional DOM updates.

        Show
        Mircea Toma added a comment - Managed to reproduce the issue but only when the server runs on Windows 7 with JDK 1.7. On a closer look one can see how the attribute updates for the "Required Indicator Text" field are reversed. In JDK 1.7 case the onchange attribute is the first one updated an then the disabled attribute. This seems to make the onchange listener non-functional since no postback is issued when tabbing out of the changed "Required Indicator Text" field. Debugging on the server side shows that the attribute updates are stored into a hash map, when updates are generated off this map the entries are iterated in a different order on JDK 1.8 vs JDK 1.7 (most probably the hash codes are generated slightly differently). This issue proves once again that enabling attribute updates cannot guarantee reliable and functional DOM updates.
        Hide
        Ken Fyten added a comment -

        Re-opened to have the "attr" diffConfig docs added to the Wiki page:
        http://www.icesoft.org/wiki/display/ICE/diffConfig

        Also note the inherent limitations around the use of this setting as noted in this JIRA as a warning on the wiki topic.

        Show
        Ken Fyten added a comment - Re-opened to have the "attr" diffConfig docs added to the Wiki page: http://www.icesoft.org/wiki/display/ICE/diffConfig Also note the inherent limitations around the use of this setting as noted in this JIRA as a warning on the wiki topic.
        Hide
        Mircea Toma added a comment -

        Added wiki docs.

        Show
        Mircea Toma added a comment - Added wiki docs.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Carmen Cristurean
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: