Author: ron.sigal(a)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@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);
Show replies by date