jdk/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java
changeset 24871 224e298c3978
parent 24685 215fa91e1b4c
child 25186 63e1a2ec30f5
equal deleted inserted replaced
24870:5d567113d043 24871:224e298c3978
  1213                 public Class<?> run() {
  1213                 public Class<?> run() {
  1214                     try {
  1214                     try {
  1215                         ReflectUtil.checkPackageAccess(className);
  1215                         ReflectUtil.checkPackageAccess(className);
  1216                         final ClassLoader targetClassLoader =
  1216                         final ClassLoader targetClassLoader =
  1217                             rmmbClass.getClassLoader();
  1217                             rmmbClass.getClassLoader();
  1218                         Class clz = Class.forName(className, false,
  1218                         Class<?> clz = Class.forName(className, false,
  1219                                                     targetClassLoader);
  1219                                                     targetClassLoader);
  1220                         if (!rmmbClass.isAssignableFrom(clz))
  1220                         if (!rmmbClass.isAssignableFrom(clz))
  1221                             return null;
  1221                             return null;
  1222                         return clz;
  1222                         return clz;
  1223                     } catch (ClassNotFoundException e) {
  1223                     } catch (ClassNotFoundException e) {
  1671                                 wrongType = true;
  1671                                 wrongType = true;
  1672                         } else {
  1672                         } else {
  1673                             // inequality may come from type subclassing
  1673                             // inequality may come from type subclassing
  1674                             boolean subtype;
  1674                             boolean subtype;
  1675                             try {
  1675                             try {
  1676                                 final Class respClass = response.getClass();
  1676                                 final Class<?> respClass = response.getClass();
  1677                                 final Exception[] caughException = new Exception[1];
  1677                                 final Exception[] caughException = new Exception[1];
  1678 
  1678 
  1679                                 AccessControlContext stack = AccessController.getContext();
  1679                                 AccessControlContext stack = AccessController.getContext();
  1680 
  1680 
  1681                                 Class c = javaSecurityAccess.doIntersectionPrivilege(new PrivilegedAction<Class<?>>() {
  1681                                 Class<?> c = javaSecurityAccess.doIntersectionPrivilege(new PrivilegedAction<Class<?>>() {
  1682 
  1682 
  1683                                     @Override
  1683                                     @Override
  1684                                     public Class<?> run() {
  1684                                     public Class<?> run() {
  1685                                         try {
  1685                                         try {
  1686                                             ReflectUtil.checkPackageAccess(respType);
  1686                                             ReflectUtil.checkPackageAccess(respType);
  2853     private Class<?> loadClass(final String className)
  2853     private Class<?> loadClass(final String className)
  2854         throws ClassNotFoundException {
  2854         throws ClassNotFoundException {
  2855         AccessControlContext stack = AccessController.getContext();
  2855         AccessControlContext stack = AccessController.getContext();
  2856         final ClassNotFoundException[] caughtException = new ClassNotFoundException[1];
  2856         final ClassNotFoundException[] caughtException = new ClassNotFoundException[1];
  2857 
  2857 
  2858         Class c = javaSecurityAccess.doIntersectionPrivilege(new PrivilegedAction<Class<?>>() {
  2858         Class<?> c = javaSecurityAccess.doIntersectionPrivilege(new PrivilegedAction<Class<?>>() {
  2859 
  2859 
  2860             @Override
  2860             @Override
  2861             public Class<?> run() {
  2861             public Class<?> run() {
  2862                 try {
  2862                 try {
  2863                     ReflectUtil.checkPackageAccess(className);
  2863                     ReflectUtil.checkPackageAccess(className);