[jboss-remoting-commits] JBoss Remoting SVN: r6177 - remoting2/branches/2.2/src/main/org/jboss/remoting/transport/bisocket.

jboss-remoting-commits at lists.jboss.org jboss-remoting-commits at lists.jboss.org
Fri Dec 17 21:22:42 EST 2010


Author: ron.sigal at jboss.com
Date: 2010-12-17 21:22:42 -0500 (Fri, 17 Dec 2010)
New Revision: 6177

Modified:
   remoting2/branches/2.2/src/main/org/jboss/remoting/transport/bisocket/BisocketServerInvoker.java
Log:
JBREM-1261: Moved new socket processing in SecondaryServerSocketThread to separate thread.

Modified: remoting2/branches/2.2/src/main/org/jboss/remoting/transport/bisocket/BisocketServerInvoker.java
===================================================================
--- remoting2/branches/2.2/src/main/org/jboss/remoting/transport/bisocket/BisocketServerInvoker.java	2010-12-18 02:15:15 UTC (rev 6176)
+++ remoting2/branches/2.2/src/main/org/jboss/remoting/transport/bisocket/BisocketServerInvoker.java	2010-12-18 02:22:42 UTC (rev 6177)
@@ -881,41 +881,7 @@
             {
                Socket socket = secondaryServerSocket.accept();
                if (log.isTraceEnabled()) log.trace("accepted: " + socket);
-               DataInputStream dis = new DataInputStream(socket.getInputStream());
-               int action = dis.read();
-               String listenerId = dis.readUTF();
-
-               switch (action)
-               {
-                  case Bisocket.CREATE_CONTROL_SOCKET:
-                     BisocketClientInvoker.transferSocket(listenerId, socket, true);
-                     if (log.isTraceEnabled()) 
-                        log.trace("SecondaryServerSocketThread: created control socket: (" + socket + ")"+ listenerId);
-                     break;
-                     
-                  case Bisocket.RECREATE_CONTROL_SOCKET:
-                     BisocketClientInvoker invoker =  BisocketClientInvoker.getBisocketCallbackClientInvoker(listenerId);
-                     if (invoker == null)
-                     {
-                        log.debug("received new control socket for unrecognized listenerId: " + listenerId);
-                     }
-                     else
-                     {
-                        invoker.replaceControlSocket(socket);
-                        if (log.isTraceEnabled())
-                           log.trace("SecondaryServerSocketThread: recreated control socket: " + listenerId);
-                     }
-                     break;
-
-                  case Bisocket.CREATE_ORDINARY_SOCKET:
-                     BisocketClientInvoker.transferSocket(listenerId, socket, false);
-                     if (log.isTraceEnabled())
-                        log.trace("SecondaryServerSocketThread: transferred socket: " + listenerId);
-                     break;
-
-                  default:
-                     log.error("unrecognized action on SecondaryServerSocketThread: " + action);
-               }
+               processSocket(socket);
             }
             catch (IOException e)
             {
@@ -928,6 +894,71 @@
          }
       }
 
+      void processSocket(final Socket socket) throws IOException
+      {
+         new Thread()
+         {
+            public void run()
+            {
+               setName("processSocketThread: " + socket);
+               if (log.isTraceEnabled()) log.trace(this + " processing socket: " + socket);
+               try
+               {
+                  DataInputStream dis = new DataInputStream(socket.getInputStream());
+                  int action = dis.read();
+                  String listenerId = dis.readUTF();
+
+                  switch (action)
+                  {
+                     case Bisocket.CREATE_CONTROL_SOCKET:
+                        BisocketClientInvoker.transferSocket(listenerId, socket, true);
+                        if (log.isTraceEnabled()) 
+                           log.trace("SecondaryServerSocketThread: created control socket: (" + socket + ")"+ listenerId);
+                        break;
+
+                     case Bisocket.RECREATE_CONTROL_SOCKET:
+                        BisocketClientInvoker invoker =  BisocketClientInvoker.getBisocketCallbackClientInvoker(listenerId);
+                        if (invoker == null)
+                        {
+                           log.debug("received new control socket for unrecognized listenerId: " + listenerId);
+                        }
+                        else
+                        {
+                           invoker.replaceControlSocket(socket);
+                           if (log.isTraceEnabled())
+                              log.trace("SecondaryServerSocketThread: recreated control socket: " + listenerId);
+                        }
+                        break;
+
+                     case Bisocket.CREATE_ORDINARY_SOCKET:
+                        BisocketClientInvoker.transferSocket(listenerId, socket, false);
+                        if (log.isTraceEnabled())
+                           log.trace("SecondaryServerSocketThread: transferred socket: " + listenerId);
+                        break;
+
+                     default:
+                        log.error("unrecognized action on SecondaryServerSocketThread: " + action);
+                  }
+               }
+               catch (IOException e)
+               {
+                  if (running)
+                  {
+                     log.error(this + " unable to process socket", e);
+                  }
+                  else
+                  {
+                     log.debug(this + " unable to process socket", e);
+                  }
+               }
+               finally
+               {
+                  if (log.isTraceEnabled()) log.trace(this + " processed socket: " + socket);
+               }
+            }
+         }.start();
+      }
+      
       ServerSocket getServerSocket()
       {
          return secondaryServerSocket;



More information about the jboss-remoting-commits mailing list