jdk/src/java.desktop/share/classes/java/awt/Component.java
changeset 38390 233b57868492
parent 37694 c064aefc5a2f
child 40719 4ae72a69bd3b
--- a/jdk/src/java.desktop/share/classes/java/awt/Component.java	Fri Apr 29 09:16:06 2016 -0700
+++ b/jdk/src/java.desktop/share/classes/java/awt/Component.java	Fri Apr 29 21:59:47 2016 +0400
@@ -9739,19 +9739,24 @@
      */
     int getAccessibleIndexInParent() {
         synchronized (getTreeLock()) {
-            int index = -1;
-            Container parent = this.getParent();
-            if (parent != null && parent instanceof Accessible) {
-                Component ca[] = parent.getComponents();
-                for (int i = 0; i < ca.length; i++) {
-                    if (ca[i] instanceof Accessible) {
-                        index++;
-                    }
-                    if (this.equals(ca[i])) {
-                        return index;
-                    }
+
+            AccessibleContext accContext = getAccessibleContext();
+            if (accContext == null) {
+                return -1;
+            }
+
+            Accessible parent = accContext.getAccessibleParent();
+            if (parent == null) {
+                return -1;
+            }
+
+            accContext = parent.getAccessibleContext();
+            for (int i = 0; i < accContext.getAccessibleChildrenCount(); i++) {
+                if (this.equals(accContext.getAccessibleChild(i))) {
+                    return i;
                 }
             }
+
             return -1;
         }
     }