--- old/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSContext.java	2016-10-07 00:47:00.302814800 +0800
+++ new/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSContext.java	2016-10-07 00:46:59.380891800 +0800
@@ -26,8 +26,6 @@
 package com.sun.security.jgss;
 
 import org.ietf.jgss.*;
-import sun.security.jgss.GSSContextImpl;
-import sun.security.krb5.internal.AuthorizationData;
 
 /**
  * The extended GSSContext interface for supporting additional
@@ -36,40 +34,6 @@
  */
 public interface ExtendedGSSContext extends GSSContext {
 
-    // The impl is almost identical to GSSContextImpl with only 2 differences:
-    // 1. It implements the extended interface
-    // 2. It translates result to data types here in inquireSecContext
-    static class ExtendedGSSContextImpl extends GSSContextImpl
-            implements ExtendedGSSContext {
-
-        public ExtendedGSSContextImpl(GSSContextImpl old) {
-            super(old);
-        }
-
-        @Override
-        public Object inquireSecContext(InquireType type) throws GSSException {
-            SecurityManager security = System.getSecurityManager();
-            if (security != null) {
-                security.checkPermission(
-                        new InquireSecContextPermission(type.toString()));
-            }
-            Object output = super.inquireSecContext(type.name());
-            if (output != null) {
-                if (type == InquireType.KRB5_GET_AUTHZ_DATA) {
-                    AuthorizationData ad = (AuthorizationData) output;
-                    AuthorizationDataEntry[] authzData =
-                            new AuthorizationDataEntry[ad.count()];
-                    for (int i = 0; i < ad.count(); i++) {
-                        authzData[i] = new AuthorizationDataEntry(
-                                ad.item(i).adType, ad.item(i).adData);
-                    }
-                    output = authzData;
-                }
-            }
-            return output;
-        }
-    }
-
     /**
      * Return the mechanism-specific attribute associated with {@code type}.
      * <p>
--- old/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java	2016-10-07 00:47:10.553348500 +0800
+++ new/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java	2016-10-07 00:47:08.975142800 +0800
@@ -26,7 +26,6 @@
 package com.sun.security.jgss;
 
 import org.ietf.jgss.*;
-import sun.security.jgss.GSSCredentialImpl;
 
 /**
  * The extended GSSCredential interface for supporting additional
@@ -35,14 +34,6 @@
  */
 public interface ExtendedGSSCredential extends GSSCredential {
 
-    static class ExtendedGSSCredentialImpl extends GSSCredentialImpl
-            implements ExtendedGSSCredential {
-
-        public ExtendedGSSCredentialImpl(GSSCredentialImpl old) {
-            super(old);
-        }
-    }
-
     /**
      * Impersonates a principal. In Kerberos, this can be implemented
      * using the Microsoft S4U2self extension.
--- old/src/jdk.security.jgss/share/classes/com/sun/security/jgss/Extender.java	2016-10-07 00:47:17.928737100 +0800
+++ new/src/jdk.security.jgss/share/classes/com/sun/security/jgss/Extender.java	2016-10-07 00:47:16.053635800 +0800
@@ -39,18 +39,18 @@
     }
 
     public GSSCredential wrap(GSSCredential cred) {
-        if (cred instanceof ExtendedGSSCredential.ExtendedGSSCredentialImpl) {
+        if (cred instanceof ExtendedGSSCredentialImpl) {
             return cred;
         } else {
-            return new ExtendedGSSCredential.ExtendedGSSCredentialImpl((GSSCredentialImpl)cred);
+            return new ExtendedGSSCredentialImpl((GSSCredentialImpl)cred);
         }
     }
 
     public GSSContext wrap(GSSContext ctxt) {
-        if (ctxt instanceof ExtendedGSSContext.ExtendedGSSContextImpl) {
+        if (ctxt instanceof ExtendedGSSContextImpl) {
             return ctxt;
         } else {
-            return new ExtendedGSSContext.ExtendedGSSContextImpl((GSSContextImpl)ctxt);
+            return new ExtendedGSSContextImpl((GSSContextImpl)ctxt);
         }
     }
 }
--- /dev/null	2016-10-07 00:47:25.000000000 +0800
+++ new/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSContextImpl.java	2016-10-07 00:47:23.810033400 +0800
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.security.jgss;
+
+import org.ietf.jgss.*;
+import sun.security.jgss.GSSContextImpl;
+import sun.security.krb5.internal.AuthorizationData;
+
+// The impl is almost identical to GSSContextImpl with only 2 differences:
+// 1. It implements the extended interface
+// 2. It translates result to data types here in inquireSecContext
+class ExtendedGSSContextImpl extends GSSContextImpl
+        implements ExtendedGSSContext {
+
+    public ExtendedGSSContextImpl(GSSContextImpl old) {
+        super(old);
+    }
+
+    @Override
+    public Object inquireSecContext(InquireType type) throws GSSException {
+        SecurityManager security = System.getSecurityManager();
+        if (security != null) {
+            security.checkPermission(
+                    new InquireSecContextPermission(type.toString()));
+        }
+        Object output = super.inquireSecContext(type.name());
+        if (output != null) {
+            if (type == InquireType.KRB5_GET_AUTHZ_DATA) {
+                AuthorizationData ad = (AuthorizationData) output;
+                AuthorizationDataEntry[] authzData =
+                        new AuthorizationDataEntry[ad.count()];
+                for (int i = 0; i < ad.count(); i++) {
+                    authzData[i] = new AuthorizationDataEntry(
+                            ad.item(i).adType, ad.item(i).adData);
+                }
+                output = authzData;
+            }
+        }
+        return output;
+    }
+}
--- /dev/null	2016-10-07 00:47:32.000000000 +0800
+++ new/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSCredentialImpl.java	2016-10-07 00:47:29.485216600 +0800
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.security.jgss;
+
+import sun.security.jgss.GSSCredentialImpl;
+
+class ExtendedGSSCredentialImpl extends GSSCredentialImpl
+        implements ExtendedGSSCredential {
+
+    public ExtendedGSSCredentialImpl(GSSCredentialImpl old) {
+        super(old);
+    }
+}