[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