--- a/src/java.desktop/share/classes/javax/swing/JTree.java
+++ b/src/java.desktop/share/classes/javax/swing/JTree.java
@@ -5153,7 +5153,7 @@ public class JTree extends JComponent im
             public AccessibleSelection getAccessibleSelection() {
                 AccessibleContext ac = getCurrentAccessibleContext();
                 if (ac != null && isLeaf) {
-                    return getCurrentAccessibleContext().getAccessibleSelection();
+                    return ac.getAccessibleSelection();
                 } else {
                     return this;
                 }
@@ -5168,7 +5168,7 @@ public class JTree extends JComponent im
             public AccessibleText getAccessibleText() {
                 AccessibleContext ac = getCurrentAccessibleContext();
                 if (ac != null) {
-                    return getCurrentAccessibleContext().getAccessibleText();
+                    return ac.getAccessibleText();
                 } else {
                     return null;
                 }
@@ -5183,7 +5183,7 @@ public class JTree extends JComponent im
             public AccessibleValue getAccessibleValue() {
                 AccessibleContext ac = getCurrentAccessibleContext();
                 if (ac != null) {
-                    return getCurrentAccessibleContext().getAccessibleValue();
+                    return ac.getAccessibleValue();
                 } else {
                     return null;
                 }
--- a/src/java.desktop/share/classes/javax/swing/table/JTableHeader.java
+++ b/src/java.desktop/share/classes/javax/swing/table/JTableHeader.java
@@ -1130,7 +1130,12 @@ public class JTableHeader extends JCompo
             }
 
             public AccessibleAction getAccessibleAction() {
-                return getCurrentAccessibleContext().getAccessibleAction();
+                AccessibleContext ac = getCurrentAccessibleContext();
+                if (ac != null) {
+			return ac.getAccessibleAction();
+		} else {
+			return null;
+		}
             }
 
            /**
@@ -1146,15 +1151,30 @@ public class JTableHeader extends JCompo
             }
 
             public AccessibleSelection getAccessibleSelection() {
-                return getCurrentAccessibleContext().getAccessibleSelection();
+                AccessibleContext ac = getCurrentAccessibleContext();
+                if (ac != null) {
+			return ac.getAccessibleSelection();
+		} else {
+			return null;
+		}
             }
 
             public AccessibleText getAccessibleText() {
-                return getCurrentAccessibleContext().getAccessibleText();
+                AccessibleContext ac = getCurrentAccessibleContext();
+                if (ac != null) {
+			return ac.getAccessibleText();
+		} else {
+			return null;
+		}
             }
 
             public AccessibleValue getAccessibleValue() {
-                return getCurrentAccessibleContext().getAccessibleValue();
+                AccessibleContext ac = getCurrentAccessibleContext();
+                if (ac != null) {
+			return ac.getAccessibleValue();
+		} else {
+			return null;
+		}
             }
 
 
--- a/src/java.desktop/share/classes/javax/swing/JTable.java
+++ b/src/java.desktop/share/classes/javax/swing/JTable.java
@@ -8450,7 +8450,12 @@ public class JTable extends JComponent i
              *    <code>null</code>
              */
             public AccessibleSelection getAccessibleSelection() {
-                return getCurrentAccessibleContext().getAccessibleSelection();
+                AccessibleContext ac = getCurrentAccessibleContext();
+                if (ac != null) {
+		    return ac.getAccessibleSelection();
+                } else {
+                    return null;
+                }
             }
 
             /**
@@ -8460,7 +8465,12 @@ public class JTable extends JComponent i
              * @return the <code>AccessibleText</code>, or <code>null</code>
              */
             public AccessibleText getAccessibleText() {
-                return getCurrentAccessibleContext().getAccessibleText();
+                AccessibleContext ac = getCurrentAccessibleContext();
+                if (ac != null) {
+		    return ac.getAccessibleText();
+                } else {
+                    return null;
+                }
             }
 
             /**
@@ -8470,7 +8480,12 @@ public class JTable extends JComponent i
              * @return the <code>AccessibleValue</code>, or <code>null</code>
              */
             public AccessibleValue getAccessibleValue() {
-                return getCurrentAccessibleContext().getAccessibleValue();
+                AccessibleContext ac = getCurrentAccessibleContext();
+                if (ac != null) {
+		    return ac.getAccessibleValue();
+                } else {
+                    return null;
+                }
             }
 
 
@@ -9230,7 +9245,12 @@ public class JTable extends JComponent i
              * @return the <code>AccessibleAction</code>, or <code>null</code>
              */
             public AccessibleAction getAccessibleAction() {
-                return getCurrentAccessibleContext().getAccessibleAction();
+                AccessibleContext ac = getCurrentAccessibleContext();
+                if (ac != null) {
+		    return ac.getAccessibleAction();
+                } else {
+                    return null;
+                }
             }
 
             /**
@@ -9252,7 +9272,12 @@ public class JTable extends JComponent i
              *    <code>null</code>
              */
             public AccessibleSelection getAccessibleSelection() {
-                return getCurrentAccessibleContext().getAccessibleSelection();
+                AccessibleContext ac = getCurrentAccessibleContext();
+                if (ac != null) {
+		    return ac.getAccessibleSelection();
+                } else {
+                    return null;
+                }
             }
 
             /**
@@ -9262,7 +9287,12 @@ public class JTable extends JComponent i
              * @return the <code>AccessibleText</code>, or <code>null</code>
              */
             public AccessibleText getAccessibleText() {
-                return getCurrentAccessibleContext().getAccessibleText();
+                AccessibleContext ac = getCurrentAccessibleContext();
+                if (ac != null) {
+		    return ac.getAccessibleText();
+                } else {
+                    return null;
+                }
             }
 
             /**
@@ -9272,7 +9302,12 @@ public class JTable extends JComponent i
              * @return the <code>AccessibleValue</code>, or <code>null</code>
              */
             public AccessibleValue getAccessibleValue() {
-                return getCurrentAccessibleContext().getAccessibleValue();
+                AccessibleContext ac = getCurrentAccessibleContext();
+                if (ac != null) {
+		    return ac.getAccessibleValue();
+                } else {
+                    return null;
+                }
             }
 
 
--- a/src/jdk.accessibility/windows/classes/com/sun/java/accessibility/internal/AccessBridge.java
+++ b/src/jdk.accessibility/windows/classes/com/sun/java/accessibility/internal/AccessBridge.java
@@ -6636,7 +6636,7 @@ public final class AccessBridge {
         public AccessibleSelection getAccessibleSelection() {
             AccessibleContext ac = getCurrentAccessibleContext();
             if (ac != null && isLeaf) {
-                return getCurrentAccessibleContext().getAccessibleSelection();
+                return ac.getAccessibleSelection();
             } else {
                 return this;
             }
@@ -6651,7 +6651,7 @@ public final class AccessBridge {
         public AccessibleText getAccessibleText() {
             AccessibleContext ac = getCurrentAccessibleContext();
             if (ac != null) {
-                return getCurrentAccessibleContext().getAccessibleText();
+                return ac.getAccessibleText();
             } else {
                 return null;
             }
@@ -6666,7 +6666,7 @@ public final class AccessBridge {
         public AccessibleValue getAccessibleValue() {
             AccessibleContext ac = getCurrentAccessibleContext();
             if (ac != null) {
-                return getCurrentAccessibleContext().getAccessibleValue();
+                return ac.getAccessibleValue();
             } else {
                 return null;
             }
