ICEfaces
  1. ICEfaces
  2. ICE-2758

SelectInputDate uses unsafe method to match component id when processing the calendar button clicked event

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.6.2
    • Fix Version/s: 1.7.2
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      Windows, JBoss 4.2
    • Workaround Exists:
      Yes
    • Workaround Description:
      Make sure that no selectInputDate exists with a clientId which is a substring of another selectInputDate's clientId.

      Description

      com.icesoft.faces.component.selectinputdate.SelectInputDateRenderer#checkLink() checks whether the calendar button that was clicked is the same button that corresponds to the current SelectInputDate component. It does this by looking for the clientId of the SelectInputDate component as a substring of the linkId that was clicked. This approach produces a false positive if another selectInputDate component exists that has a client id which is a superstring of another selectInputDate component.

      To reproduce, create two selectInputDates side by side. Give the first an id of "test", and the second an id of "test2". Click the calendar button of the "test2" component. The popup for both "test" and "test2" will appear.

      This is because the client of "test" is a substring of the clicked link id, which is "test2_calendarButton". Therefore the test in com.icesoft.faces.component.selectinputdate.SelectInputDateRenderer#checkLink() returns true.

        Activity

          People

          • Assignee:
            Unassigned
            Reporter:
            User Ansel1
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: