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

jboss-remoting-commits at lists.jboss.org jboss-remoting-commits at lists.jboss.org
Sat Jul 3 09:29:11 EDT 2010


Author: ron.sigal at jboss.com
Date: 2010-07-03 09:29:11 -0400 (Sat, 03 Jul 2010)
New Revision: 5881

Modified:
   remoting2/branches/2.x/src/main/org/jboss/remoting/Client.java
Log:
JBREM-1231: Wrapped all state changing calls to InvokerRegistry in PrivilegedAction.

Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/Client.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/Client.java	2010-06-25 00:19:09 UTC (rev 5880)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/Client.java	2010-07-03 13:29:11 UTC (rev 5881)
@@ -362,7 +362,20 @@
             
             try
             {
-               this.invoker = InvokerRegistry.createClientInvoker(locator, configuration);
+               try
+               {
+                  this.invoker = (ClientInvoker) AccessController.doPrivileged( new PrivilegedExceptionAction()
+                  {
+                     public Object run() throws Exception
+                     {
+                        return InvokerRegistry.createClientInvoker(locator, configuration);
+                     }
+                  });
+               }
+               catch (PrivilegedActionException pae)
+               {
+                  throw pae.getException();
+               }
                if(wasConnected)
                {
                   connect();
@@ -629,7 +642,21 @@
             configuration.put(Remoting.CUSTOM_SOCKET_FACTORY, socketFactory);
             this.socketFactory = null;
          }
-         invoker = InvokerRegistry.createClientInvoker(locator, configuration);
+         try
+         {
+            invoker = (ClientInvoker) AccessController.doPrivileged( new PrivilegedExceptionAction()
+            {
+               public Object run() throws Exception
+               {
+                  return InvokerRegistry.createClientInvoker(locator, configuration);
+               }
+            });
+         }
+         catch (PrivilegedActionException pae)
+         {
+            throw pae.getException();
+         }
+         
       }
 
       connect(invoker, listener, metadata);
@@ -684,7 +711,14 @@
          }
          else
          {
-            InvokerRegistry.destroyClientInvoker(invoker.getLocator(), configuration);
+            AccessController.doPrivileged( new PrivilegedAction()
+            {
+               public Object run()
+               {
+                  InvokerRegistry.destroyClientInvoker(invoker.getLocator(), configuration);
+                  return null;
+               }
+            });
          }
          
          invoker = null;
@@ -2064,7 +2098,23 @@
 
    private void configureCallbackServerSocketFactory(Map map) throws Exception
    {
-      if (InvokerRegistry.isSSLSupported(locator.getProtocol()) &&
+      Boolean supportsSSL = null;
+      try
+      {
+         supportsSSL = (Boolean) AccessController.doPrivileged( new PrivilegedExceptionAction()
+         {
+            public Object run() throws Exception
+            {
+               return new Boolean(InvokerRegistry.isSSLSupported(locator.getProtocol()));
+            }
+         });
+      }
+      catch (PrivilegedActionException pae)
+      {
+         throw pae.getException();
+      }
+      
+      if (supportsSSL.booleanValue() &&
           !map.containsKey(Remoting.CUSTOM_SERVER_SOCKET_FACTORY) &&
           !map.containsKey(ServerInvoker.SERVER_SOCKET_FACTORY) &&
           !map.containsKey(SSLSocketBuilder.REMOTING_SERVER_SOCKET_USE_CLIENT_MODE))
@@ -2087,7 +2137,14 @@
       public void run()
       {
          log.debug(this + " calling InvokerRegistry.destroyClientInvoker() for " + invoker);
-         InvokerRegistry.destroyClientInvoker(invoker.getLocator(), config);
+         AccessController.doPrivileged( new PrivilegedAction()
+         {
+            public Object run()
+            {
+               InvokerRegistry.destroyClientInvoker(invoker.getLocator(), config);
+               return null;
+            }
+         });
          
          synchronized (invokerDestructionTimerLock)
          {



More information about the jboss-remoting-commits mailing list