src/java.corba/share/classes/com/sun/corba/se/spi/orb/ORB.java
Print this page
*** 23,32 ****
--- 23,33 ----
* 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,217 ****
* 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 && javaAwtAccess != null) {
! final Object appletContext = javaAwtAccess.getAppletContext();
if (appletContext != null) {
return pmContexts.computeIfAbsent(appletContext,
x -> setupPresentationManager());
}
}
// No security manager or AppletAppContext
return Holder.defaultPresentationManager;
}
--- 201,238 ----
* AppContext to hold it. Creates and records one if needed.
*/
public static PresentationManager getPresentationManager()
{
SecurityManager sm = System.getSecurityManager();
!
! 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) {
! 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;
}