[jboss-remoting-commits] JBoss Remoting SVN: r3842 - remoting2/branches/2.x/src/main/org/jboss/remoting/serialization.

jboss-remoting-commits at lists.jboss.org jboss-remoting-commits at lists.jboss.org
Wed Apr 2 00:09:57 EDT 2008


Author: ron.sigal at jboss.com
Date: 2008-04-02 00:09:57 -0400 (Wed, 02 Apr 2008)
New Revision: 3842

Modified:
   remoting2/branches/2.x/src/main/org/jboss/remoting/serialization/ClassLoaderUtility.java
Log:
JBREM-934: Put Thread().getContextClassLoader(), Class.getClassLoader(), and ClassLoader.getSystemClassLoader() calls in AccessController.doPrivileged() calls.

Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/serialization/ClassLoaderUtility.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/serialization/ClassLoaderUtility.java	2008-04-02 04:07:13 UTC (rev 3841)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/serialization/ClassLoaderUtility.java	2008-04-02 04:09:57 UTC (rev 3842)
@@ -21,6 +21,9 @@
 */
 package org.jboss.remoting.serialization;
 
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
 /**
  * @author <a href="mailto:clebert.suconic at jboss.com">Clebert Suconic</a>
  */
@@ -36,13 +39,19 @@
     *                  if no context class loader is available.
     * @return Class, or null on failure.
     */
-   public static Class loadClass(String classname, Class clazz) throws ClassNotFoundException
+   public static Class loadClass(String classname, final Class clazz) throws ClassNotFoundException
    {
       ClassLoader loader;
 
       try
       {
-         loader = Thread.currentThread().getContextClassLoader();
+         loader = (ClassLoader) AccessController.doPrivileged( new PrivilegedAction()
+         {
+            public Object run()
+            {
+               return Thread.currentThread().getContextClassLoader();
+            }
+         });
          if (loader != null)
          {
             return Class.forName(classname, false, loader);
@@ -56,7 +65,13 @@
       {
          try
          {
-            loader = clazz.getClassLoader();
+            loader = (ClassLoader) AccessController.doPrivileged( new PrivilegedAction()
+            {
+               public Object run()
+               {
+                  return clazz.getClassLoader();
+               }
+            });
             if (loader != null)
             {
                return Class.forName(classname, false, loader);
@@ -69,7 +84,13 @@
 
       try
       {
-         loader = ClassLoader.getSystemClassLoader();
+         loader = (ClassLoader) AccessController.doPrivileged( new PrivilegedAction()
+         {
+            public Object run()
+            {
+               return ClassLoader.getSystemClassLoader();
+            }
+         });
          if (loader != null)
          {
             return Class.forName(classname, false, loader);
@@ -91,7 +112,7 @@
     * @param classname Desired class.
     * @return Class, or null on failure.
     */
-   public static Class loadClass(Class clazz, String classname) throws ClassNotFoundException
+   public static Class loadClass(final Class clazz, String classname) throws ClassNotFoundException
    {
       ClassLoader loader;
 
@@ -99,7 +120,14 @@
       {
          try
          {
-            loader = clazz.getClassLoader();
+            loader = (ClassLoader) AccessController.doPrivileged( new PrivilegedAction()
+            {
+               public Object run()
+               {
+                  return clazz.getClassLoader();
+               }
+            });
+            
             if (loader != null)
             {
                return Class.forName(classname, false, loader);
@@ -112,7 +140,13 @@
 
       try
       {
-         loader = Thread.currentThread().getContextClassLoader();
+         loader = (ClassLoader) AccessController.doPrivileged( new PrivilegedAction()
+         {
+            public Object run()
+            {
+               return Thread.currentThread().getContextClassLoader();
+            }
+         });
          if (loader != null)
          {
             return Class.forName(classname, false, loader);
@@ -125,7 +159,13 @@
 
       try
       {
-         loader = ClassLoader.getSystemClassLoader();
+         loader = (ClassLoader) AccessController.doPrivileged( new PrivilegedAction()
+         {
+            public Object run()
+            {
+               return ClassLoader.getSystemClassLoader();
+            }
+         });
          if (loader != null)
          {
             return Class.forName(classname, false, loader);




More information about the jboss-remoting-commits mailing list