changeset 7369:32f9c266ef81

8028285: RMI Thread can no longer call out to AWT Reviewed-by: art, serb, ddehaven
author pchelko
date Tue, 25 Feb 2014 19:33:43 +0400
parents 14f9f6259771
children c220d329a781
files src/share/classes/sun/awt/AppContext.java
diffstat 1 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/sun/awt/AppContext.java	Fri Feb 21 08:39:13 2014 -0800
+++ b/src/share/classes/sun/awt/AppContext.java	Tue Feb 25 19:33:43 2014 +0400
@@ -323,6 +323,20 @@
                     while (context == null) {
                         threadGroup = threadGroup.getParent();
                         if (threadGroup == null) {
+                            // We've got up to the root thread group and did not find an AppContext
+                            // Try to get it from the security manager
+                            SecurityManager securityManager = System.getSecurityManager();
+                            if (securityManager != null) {
+                                ThreadGroup smThreadGroup = securityManager.getThreadGroup();
+                                if (smThreadGroup != null) {
+                                    /*
+                                     * If we get this far then it's likely that
+                                     * the ThreadGroup does not actually belong
+                                     * to the applet, so do not cache it.
+                                     */
+                                    return threadGroup2appContext.get(smThreadGroup);
+                                }
+                            }
                             return null;
                         }
                         context = threadGroup2appContext.get(threadGroup);