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

jboss-remoting-commits at lists.jboss.org jboss-remoting-commits at lists.jboss.org
Thu Mar 20 21:31:14 EDT 2008


Author: ron.sigal at jboss.com
Date: 2008-03-20 21:31:14 -0400 (Thu, 20 Mar 2008)
New Revision: 3698

Modified:
   remoting2/branches/2.x/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java
Log:
JBREM-934: Put classloader creation in AccessController.doPrivileged() call.

Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java	2008-03-21 01:30:05 UTC (rev 3697)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java	2008-03-21 01:31:14 UTC (rev 3698)
@@ -12,6 +12,10 @@
 import org.jboss.util.id.GUID;
 
 import java.io.IOException;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -116,7 +120,7 @@
          // class loader.  This allows to load remoting classes as well as user's
          // classes.  If possible, will simply reset context classloader on existing
          // RemotingClassLoader.
-         ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
+         final ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
          if (unmarshaller instanceof UpdateableClassloaderUnMarshaller)
          {
             UpdateableClassloaderUnMarshaller uclum = (UpdateableClassloaderUnMarshaller) unmarshaller;
@@ -128,13 +132,26 @@
             }
             else
             {
-               rcl = new RemotingClassLoader(getClassLoader(), contextClassLoader);
+               rcl = (RemotingClassLoader)AccessController.doPrivileged( new PrivilegedAction()
+               {
+                  public Object run()
+                  {
+                     return new RemotingClassLoader(getClassLoader(), contextClassLoader);
+                  }
+               });
+
                unmarshaller.setClassLoader(rcl);
             }
          }
          else
          {
-            rcl = new RemotingClassLoader(getClassLoader(), contextClassLoader);
+            rcl = (RemotingClassLoader)AccessController.doPrivileged( new PrivilegedAction()
+            {
+               public Object run()
+               {
+                  return new RemotingClassLoader(getClassLoader(), contextClassLoader);
+               }
+            });
             unmarshaller.setClassLoader(rcl);  
          }
       }




More information about the jboss-remoting-commits mailing list