summaryrefslogtreecommitdiff
path: root/java/openjdk6/files/icedtea/security/7198296.patch
diff options
context:
space:
mode:
authorGreg Lewis <glewis@FreeBSD.org>2012-10-29 06:13:33 +0000
committerGreg Lewis <glewis@FreeBSD.org>2012-10-29 06:13:33 +0000
commit5b9c189def49aa5ace7af88e90e72d582694fb04 (patch)
tree42f8bad0dffa99613e85598ec67fe9b5cee8aa61 /java/openjdk6/files/icedtea/security/7198296.patch
parent- Fix console warnings of "GtkSpinButton: setting an adjustment with non-zero (diff)
. Update to build 27.
Feature safe: yes
Diffstat (limited to 'java/openjdk6/files/icedtea/security/7198296.patch')
-rw-r--r--java/openjdk6/files/icedtea/security/7198296.patch114
1 files changed, 0 insertions, 114 deletions
diff --git a/java/openjdk6/files/icedtea/security/7198296.patch b/java/openjdk6/files/icedtea/security/7198296.patch
deleted file mode 100644
index 056090582212..000000000000
--- a/java/openjdk6/files/icedtea/security/7198296.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-# HG changeset patch
-# User asaha
-# Date 1349309940 25200
-# Node ID a66bba985c2c46743d6780879278092c0fa5cf2b
-# Parent 5352a40bb0ff7e8a6e826478d7687fff695d9805
-7198296: Refactor classloader usage
-Reviewed-by: dsamersoff
-Contributed-by: andreas.eriksson@oracle.com
-
-diff --git a/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java b/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java
---- jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java
-+++ jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java
-@@ -165,9 +165,17 @@
- withPermissions( new MBeanPermission("*", "getClassLoaderRepository"),
- new RuntimePermission("createClassLoader"))
- );
--
-- serverCommunicatorAdmin = new
-- RMIServerCommunicatorAdmin(EnvHelp.getServerConnectionTimeout(env));
-+ this.defaultContextClassLoader =
-+ AccessController.doPrivileged(
-+ new PrivilegedAction<ClassLoader>() {
-+ @Override
-+ public ClassLoader run() {
-+ return new CombinedClassLoader(Thread.currentThread().getContextClassLoader(),
-+ dcl);
-+ }
-+ });
-+ serverCommunicatorAdmin = new
-+ RMIServerCommunicatorAdmin(EnvHelp.getServerConnectionTimeout(env));
-
- this.env = env;
- }
-@@ -529,7 +537,7 @@
- "connectionId=" + connectionId
- +" unwrapping query with defaultClassLoader.");
-
-- queryValue = unwrap(query, defaultClassLoader, QueryExp.class);
-+ queryValue = unwrap(query, defaultContextClassLoader, QueryExp.class);
-
- try {
- final Object params[] = new Object[] { name, queryValue };
-@@ -563,7 +571,7 @@
- "connectionId=" + connectionId
- +" unwrapping query with defaultClassLoader.");
-
-- queryValue = unwrap(query, defaultClassLoader, QueryExp.class);
-+ queryValue = unwrap(query, defaultContextClassLoader, QueryExp.class);
-
- try {
- final Object params[] = new Object[] { name, queryValue };
-@@ -1592,7 +1600,8 @@
- ClassLoader orderCL = AccessController.doPrivileged(
- new PrivilegedExceptionAction<ClassLoader>() {
- public ClassLoader run() throws Exception {
-- return new OrderClassLoaders(cl1, cl2);
-+ return new CombinedClassLoader(Thread.currentThread().getContextClassLoader(),
-+ new OrderClassLoaders(cl1, cl2));
- }
- }
- );
-@@ -1684,6 +1693,8 @@
-
- private final ClassLoader defaultClassLoader;
-
-+ private final ClassLoader defaultContextClassLoader;
-+
- private final ClassLoaderWithRepository classLoaderWithRepository;
-
- private boolean terminated = false;
-@@ -1768,4 +1779,43 @@
-
- private static final ClassLogger logger =
- new ClassLogger("javax.management.remote.rmi", "RMIConnectionImpl");
-+
-+ private static final class CombinedClassLoader extends ClassLoader {
-+
-+ private final static class ClassLoaderWrapper extends ClassLoader {
-+ ClassLoaderWrapper(ClassLoader cl) {
-+ super(cl);
-+ }
-+
-+ @Override
-+ protected Class<?> loadClass(String name, boolean resolve)
-+ throws ClassNotFoundException {
-+ return super.loadClass(name, resolve);
-+ }
-+ };
-+
-+ final ClassLoaderWrapper defaultCL;
-+
-+ private CombinedClassLoader(ClassLoader parent, ClassLoader defaultCL) {
-+ super(parent);
-+ this.defaultCL = new ClassLoaderWrapper(defaultCL);
-+ }
-+
-+ @Override
-+ protected Class<?> loadClass(String name, boolean resolve)
-+ throws ClassNotFoundException {
-+ try {
-+ super.loadClass(name, resolve);
-+ } catch(Exception e) {
-+ for(Throwable t = e; t != null; t = t.getCause()) {
-+ if(t instanceof SecurityException) {
-+ throw t==e?(SecurityException)t:new SecurityException(t.getMessage(), e);
-+ }
-+ }
-+ }
-+ final Class<?> cl = defaultCL.loadClass(name, resolve);
-+ return cl;
-+ }
-+
-+ }
- }