# HG changeset patch # User sjiang # Date 1429089385 -7200 # Node ID 6fbc92f64425971c832fde06560bfbcd33bc6384 # Parent 4727673aaa923c7050a6e5040b1e53641464e3bb 8075853: Proxy for MBean proxies Reviewed-by: dfuchs, ahgross, bmoloden diff -r 4727673aaa92 -r 6fbc92f64425 jdk/src/java.management/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java --- a/jdk/src/java.management/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Sat Apr 11 18:04:10 2015 +0100 +++ b/jdk/src/java.management/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Wed Apr 15 11:16:25 2015 +0200 @@ -32,7 +32,6 @@ import java.security.AccessControlContext; import java.security.AccessController; import java.security.Permission; -import java.security.PermissionCollection; import java.security.Permissions; import java.security.PrivilegedAction; import java.security.PrivilegedActionException; @@ -46,7 +45,6 @@ import javax.management.*; import javax.management.remote.JMXServerErrorException; import javax.management.remote.NotificationResult; -import javax.management.remote.TargetedNotification; import javax.security.auth.Subject; import sun.reflect.misc.ReflectUtil; @@ -59,6 +57,7 @@ import com.sun.jmx.remote.util.ClassLogger; import com.sun.jmx.remote.util.EnvHelp; import com.sun.jmx.remote.util.OrderClassLoaders; +import javax.management.loading.ClassLoaderRepository; /** *

Implementation of the {@link RMIConnection} interface. User @@ -131,20 +130,24 @@ final ClassLoader dcl = defaultClassLoader; - this.classLoaderWithRepository = - AccessController.doPrivileged( - new PrivilegedAction() { - public ClassLoaderWithRepository run() { - return new ClassLoaderWithRepository( - mbeanServer.getClassLoaderRepository(), - dcl); - } - }, - - withPermissions( new MBeanPermission("*", "getClassLoaderRepository"), - new RuntimePermission("createClassLoader")) - ); - + ClassLoaderRepository repository = AccessController.doPrivileged( + new PrivilegedAction() { + public ClassLoaderRepository run() { + return mbeanServer.getClassLoaderRepository(); + } + }, + withPermissions(new MBeanPermission("*", "getClassLoaderRepository")) + ); + this.classLoaderWithRepository = AccessController.doPrivileged( + new PrivilegedAction() { + public ClassLoaderWithRepository run() { + return new ClassLoaderWithRepository( + repository, + dcl); + } + }, + withPermissions(new RuntimePermission("createClassLoader")) + ); this.defaultContextClassLoader = AccessController.doPrivileged(