src/java.corba/share/classes/com/sun/corba/se/spi/orb/ORB.java

Print this page

        

@@ -23,10 +23,11 @@
  * questions.
  */
 
 package com.sun.corba.se.spi.orb;
 
+import java.lang.reflect.Method;
 import java.util.Map ;
 import java.util.HashMap ;
 import java.util.Properties ;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.logging.Logger ;

@@ -200,18 +201,38 @@
      * AppContext to hold it. Creates and records one if needed.
      */
     public static PresentationManager getPresentationManager()
     {
         SecurityManager sm = System.getSecurityManager();
-        sun.misc.JavaAWTAccess javaAwtAccess = sun.misc.SharedSecrets.getJavaAWTAccess();
+
+        if (sm != null) {
+            PresentationManager pm = AccessController.doPrivileged(
+                (PrivilegedAction<PresentationManager>) () -> {
+                    try {
+                        Class<?> c = Class.forName("jdk.internal.misc.SharedSecrets");
+                        Method m = c.getDeclaredMethod("getJavaAWTAccess");
+                        final Object javaAwtAccess = m.invoke(null);
+
         if (sm != null && javaAwtAccess != null) {
-            final Object appletContext = javaAwtAccess.getAppletContext();
+                            c = Class.forName("jdk.internal.misc.JavaAWTAccess");
+                            m = c.getDeclaredMethod("getAppletContext");
+
+                            final Object appletContext = m.invoke(javaAwtAccess);
             if (appletContext != null) {
                 return pmContexts.computeIfAbsent(appletContext,
                     x -> setupPresentationManager());
             }
         }
+                        return null;
+                    } catch (ReflectiveOperationException x) {
+                        throw new InternalError(x);
+                    }
+                });
+
+            if (pm != null)
+                return pm;
+        }
 
         // No security manager or AppletAppContext
         return Holder.defaultPresentationManager;
     }