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

jboss-remoting-commits at lists.jboss.org jboss-remoting-commits at lists.jboss.org
Fri Apr 4 03:43:10 EDT 2008


Author: ron.sigal at jboss.com
Date: 2008-04-04 03:43:10 -0400 (Fri, 04 Apr 2008)
New Revision: 3887

Modified:
   remoting2/branches/2.x/src/main/org/jboss/remoting/callback/CallbackStore.java
Log:
JBREM-934: Put JBossSerialization operations in AccessController.doPrivileged() call.

Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/callback/CallbackStore.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/callback/CallbackStore.java	2008-04-04 07:40:51 UTC (rev 3886)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/callback/CallbackStore.java	2008-04-04 07:43:10 UTC (rev 3887)
@@ -443,7 +443,7 @@
     * @param object
     * @throws IOException
     */
-   public void add(Serializable object) throws IOException
+   public void add(final Serializable object) throws IOException
    {
       verifyStarted();
 
@@ -485,10 +485,34 @@
             {
                throw (IOException) e.getCause();
             }
-            
-            out = SerializationStreamFactory.getManagerInstance(serializationType).createOutput(outFile);
-            out.writeObject(object);
-            out.flush();
+
+            if (serializationType.indexOf("jboss") > 0)
+            {
+               out = SerializationStreamFactory.getManagerInstance(serializationType).createOutput(outFile);
+               out.writeObject(object);
+               out.flush();
+            }
+            else
+            {
+               try
+               {
+                  final FileOutputStream finalOutFile = outFile;
+                  out = (ObjectOutputStream) AccessController.doPrivileged( new PrivilegedExceptionAction()
+                  {
+                     public Object run() throws IOException
+                     {
+                        ObjectOutputStream out = SerializationStreamFactory.getManagerInstance(serializationType).createOutput(finalOutFile);
+                        out.writeObject(object);
+                        out.flush();
+                        return out;
+                     }
+                  });
+               }
+               catch (PrivilegedActionException e)
+               {
+                  throw (IOException) e.getCause();
+               }
+            }
          }
          finally
          {




More information about the jboss-remoting-commits mailing list