[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