Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8361493

RepaintManager.invalidComponents uses different equality when searching element

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P4 P4
    • tbd
    • 17, 21, 25
    • client-libs
    • None

      'invalidComponents' is a List (always ArrayList) field in 'javax.swing.RepaintManager'.
      There is an inconsistency in what equality operation is used when searching for an element in the list.
      The 'addInvalidComponent' method uses ==.

                  int n = invalidComponents.size();
                  for(int i = 0; i < n; i++) {
                      if(validateRoot == invalidComponents.get(i)) {
                          return;
                      }
                  }

      The 'removeInvalidComponent' method uses equals.

                  int index = invalidComponents.indexOf(component);
                  if(index != -1) {
                      invalidComponents.remove(index);
                  }

      It can lead to unexpected results, when component overrides 'equals'.

            Unassigned Unassigned
            aturbanov Andrey Turbanov
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: