Mercurial > hg > release > icedtea7-forest-2.2 > jdk
changeset 5345:19be740327af
8009004: Better implementation of RMI connections
Summary: Better class handling.
Reviewed-by: alanb, dfuchs, skoivu, jbachorik
Contributed-by: jean-francois.denise@oracle.com
author | jfdenise |
---|---|
date | Mon, 18 Mar 2013 13:50:19 +0100 |
parents | e61e623fc249 |
children | 8c67c03b3447 |
files | src/share/classes/com/sun/jmx/remote/util/OrderClassLoaders.java src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java |
diffstat | 2 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/com/sun/jmx/remote/util/OrderClassLoaders.java Thu Mar 28 09:39:26 2013 +0100 +++ b/src/share/classes/com/sun/jmx/remote/util/OrderClassLoaders.java Mon Mar 18 13:50:19 2013 +0100 @@ -25,6 +25,8 @@ package com.sun.jmx.remote.util; +import sun.reflect.misc.ReflectUtil; + public class OrderClassLoaders extends ClassLoader { public OrderClassLoaders(ClassLoader cl1, ClassLoader cl2) { super(cl1); @@ -32,9 +34,10 @@ this.cl2 = cl2; } - protected Class<?> findClass(String name) throws ClassNotFoundException { + protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { + ReflectUtil.checkPackageAccess(name); try { - return super.findClass(name); + return super.loadClass(name, resolve); } catch (ClassNotFoundException cne) { if (cl2 != null) { return cl2.loadClass(name);
--- a/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Thu Mar 28 09:39:26 2013 +0100 +++ b/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Mon Mar 18 13:50:19 2013 +0100 @@ -79,6 +79,7 @@ import javax.management.remote.NotificationResult; import javax.management.remote.TargetedNotification; import javax.security.auth.Subject; +import sun.reflect.misc.ReflectUtil; /** * <p>Implementation of the {@link RMIConnection} interface. User @@ -1813,6 +1814,7 @@ @Override protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { + ReflectUtil.checkPackageAccess(name); try { super.loadClass(name, resolve); } catch(Exception e) {