[jboss-cvs] JBoss Messaging SVN: r2201 - in branches/Branch_Bisocket_Experiment2/src/main/org/jboss/jms: server/remoting and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Feb 7 12:31:13 EST 2007


Author: ron_sigal
Date: 2007-02-07 12:31:13 -0500 (Wed, 07 Feb 2007)
New Revision: 2201

Modified:
   branches/Branch_Bisocket_Experiment2/src/main/org/jboss/jms/client/remoting/ClientSocketWrapper.java
   branches/Branch_Bisocket_Experiment2/src/main/org/jboss/jms/server/remoting/ServerSocketWrapper.java
Log:
JBMESSAGING-694:  Remoting socket wrappers transmit and detect closing of a socket.

Modified: branches/Branch_Bisocket_Experiment2/src/main/org/jboss/jms/client/remoting/ClientSocketWrapper.java
===================================================================
--- branches/Branch_Bisocket_Experiment2/src/main/org/jboss/jms/client/remoting/ClientSocketWrapper.java	2007-02-07 01:12:44 UTC (rev 2200)
+++ branches/Branch_Bisocket_Experiment2/src/main/org/jboss/jms/client/remoting/ClientSocketWrapper.java	2007-02-07 17:31:13 UTC (rev 2201)
@@ -33,6 +33,8 @@
 import java.net.Socket;
 import java.util.Map;
 
+import org.jboss.logging.Logger;
+import org.jboss.remoting.transport.socket.OpenConnectionChecker;
 import org.jboss.remoting.transport.socket.SocketWrapper;
 
 /**
@@ -41,9 +43,11 @@
  *
  * $Id$
  */
-public class ClientSocketWrapper extends SocketWrapper
+public class ClientSocketWrapper extends SocketWrapper implements OpenConnectionChecker
 {
    // Constants ------------------------------------------------------------------------------------
+   final static private Logger log = Logger.getLogger(ClientSocketWrapper.class);
+   final static protected int CLOSING = 1;
    
    // Static ---------------------------------------------------------------------------------------
 
@@ -87,7 +91,17 @@
       out.flush();
       in.readByte();
    }
+   // OpenConnectionChecker implementation ---------------------------------------------------------
 
+   public void checkOpenConnection() throws IOException
+   {
+      if (in.available() > 0)
+      {
+         log.trace("remote endpoint has closed");
+         throw new IOException("remote endpoint has closed");
+      }
+   }
+   
    // Public ---------------------------------------------------------------------------------------
 
    public String toString()

Modified: branches/Branch_Bisocket_Experiment2/src/main/org/jboss/jms/server/remoting/ServerSocketWrapper.java
===================================================================
--- branches/Branch_Bisocket_Experiment2/src/main/org/jboss/jms/server/remoting/ServerSocketWrapper.java	2007-02-07 01:12:44 UTC (rev 2200)
+++ branches/Branch_Bisocket_Experiment2/src/main/org/jboss/jms/server/remoting/ServerSocketWrapper.java	2007-02-07 17:31:13 UTC (rev 2201)
@@ -61,7 +61,27 @@
    {
       super(socket, metadata, timeout);
    }
+   
+   // SocketWrapper overrides ----------------------------------------------------------------------
 
+   public void close() throws IOException
+   {
+      if(getSocket() != null)
+      {
+         try
+         {
+            getOutputStream().write(CLOSING);
+            getOutputStream().flush();
+            log.debug("wrote CLOSING byte");
+         }
+         catch (IOException e)
+         {
+            log.debug("cannot write CLOSING byte", e);
+         }
+         super.close();
+      }
+   }
+
    // Public --------------------------------------------------------
 
    public void checkConnection() throws IOException




More information about the jboss-cvs-commits mailing list