# HG changeset patch # User sjiang # Date 1429091469 -7200 # Node ID 0fe54aa739d4c89beaaa8bda6cd7c901e3d1fab7 # Parent efc8652da9379ba00bc05a3c2a6d3df61a6706e2 8075853: Proxy for MBean proxies Reviewed-by: dfuchs, ahgross, bmoloden diff -r efc8652da937 -r 0fe54aa739d4 src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java --- a/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Thu Apr 16 11:27:23 2015 +0300 +++ b/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Wed Apr 15 11:51:09 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; @@ -59,6 +58,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 +131,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(