[jboss-remoting-commits] JBoss Remoting SVN: r5794 - in remoting3/trunk/jboss-remoting/src: test/resources and 1 other directory.

jboss-remoting-commits at lists.jboss.org jboss-remoting-commits at lists.jboss.org
Wed Mar 3 23:38:28 EST 2010


Author: david.lloyd at jboss.com
Date: 2010-03-03 23:38:28 -0500 (Wed, 03 Mar 2010)
New Revision: 5794

Modified:
   remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/ClientGreetingHandler.java
   remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundReplyInputHandler.java
   remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundRequestInputHandler.java
   remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundReplyBufferWriter.java
   remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundReplyHandler.java
   remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundRequestBufferWriter.java
   remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundRequestHandler.java
   remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteConnection.java
   remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteConnectionHandler.java
   remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteMessageHandler.java
   remoting3/trunk/jboss-remoting/src/test/resources/logging.properties
Log:
Flush after sending messages, else they might never arrive

Modified: remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/ClientGreetingHandler.java
===================================================================
--- remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/ClientGreetingHandler.java	2010-03-04 04:30:28 UTC (rev 5793)
+++ remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/ClientGreetingHandler.java	2010-03-04 04:38:28 UTC (rev 5794)
@@ -135,8 +135,7 @@
                     outBuf.put(RemoteProtocol.AUTH_REQUEST);
                     Buffers.putModifiedUtf8(outBuf, mechanismName);
                     outBuf.flip();
-                    connection.sendBlocking(outBuf);
-                    connection.flushBlocking();
+                    connection.sendBlocking(outBuf, true);
                 } catch (IOException e) {
                     RemoteConnectionHandler.log.trace(e, "Failed to send auth request on %s", remoteConnection);
                     factoryResult.setException(e);

Modified: remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundReplyInputHandler.java
===================================================================
--- remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundReplyInputHandler.java	2010-03-04 04:30:28 UTC (rev 5793)
+++ remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundReplyInputHandler.java	2010-03-04 04:38:28 UTC (rev 5794)
@@ -44,8 +44,7 @@
             buffer.putInt(rid);
             buffer.flip();
             final RemoteConnection connection = connectionHandler.getRemoteConnection();
-            connection.sendBlocking(buffer);
-            connection.flushBlocking();
+            connection.sendBlocking(buffer, true);
         } finally {
             connectionHandler.getBufferPool().free(buffer);
         }

Modified: remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundRequestInputHandler.java
===================================================================
--- remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundRequestInputHandler.java	2010-03-04 04:30:28 UTC (rev 5793)
+++ remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/InboundRequestInputHandler.java	2010-03-04 04:38:28 UTC (rev 5794)
@@ -46,8 +46,7 @@
             buffer.putInt(rid);
             buffer.flip();
             final RemoteConnection connection = connectionHandler.getRemoteConnection();
-            connection.sendBlocking(buffer);
-            connection.flushBlocking();
+            connection.sendBlocking(buffer, true);
         } catch (IOException e) {
             RemoteConnectionHandler.log.trace(e, "Failed to acknowledge chunk for %s", this);
         } finally {

Modified: remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundReplyBufferWriter.java
===================================================================
--- remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundReplyBufferWriter.java	2010-03-04 04:30:28 UTC (rev 5793)
+++ remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundReplyBufferWriter.java	2010-03-04 04:38:28 UTC (rev 5794)
@@ -73,7 +73,7 @@
                 buffer.put(7, (byte) (buffer.get(3) | RemoteProtocol.MSG_FLAG_LAST));
             }
             RemoteConnectionHandler.log.trace("Sending buffer %s for %s", buffer, this);
-            connectionHandler.getRemoteConnection().sendBlocking(buffer);
+            connectionHandler.getRemoteConnection().sendBlocking(buffer, false);
         } finally {
             connectionHandler.getBufferPool().free(buffer);
         }

Modified: remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundReplyHandler.java
===================================================================
--- remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundReplyHandler.java	2010-03-04 04:30:28 UTC (rev 5793)
+++ remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundReplyHandler.java	2010-03-04 04:38:28 UTC (rev 5794)
@@ -81,7 +81,7 @@
                         buffer.put(RemoteProtocol.REPLY_EXCEPTION_ABORT);
                         buffer.putInt(rid);
                         buffer.flip();
-                        connectionHandler.getRemoteConnection().sendBlocking(buffer);
+                        connectionHandler.getRemoteConnection().sendBlocking(buffer, true);
                     } finally {
                         bufferPool.free(buffer);
                     }

Modified: remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundRequestBufferWriter.java
===================================================================
--- remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundRequestBufferWriter.java	2010-03-04 04:30:28 UTC (rev 5793)
+++ remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundRequestBufferWriter.java	2010-03-04 04:38:28 UTC (rev 5794)
@@ -73,7 +73,7 @@
                 }
             }
             RemoteConnectionHandler.log.trace("Sending buffer %s for %s", buffer, this);
-            remoteConnectionHandler.getRemoteConnection().sendBlocking(buffer);
+            remoteConnectionHandler.getRemoteConnection().sendBlocking(buffer, false);
         } finally {
             remoteConnectionHandler.getBufferPool().free(buffer);
         }

Modified: remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundRequestHandler.java
===================================================================
--- remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundRequestHandler.java	2010-03-04 04:30:28 UTC (rev 5793)
+++ remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/OutboundRequestHandler.java	2010-03-04 04:38:28 UTC (rev 5794)
@@ -84,7 +84,7 @@
             buf.putInt(rid);
             buf.flip();
             try {
-                connectionHandler.getRemoteConnection().sendBlocking(buf);
+                connectionHandler.getRemoteConnection().sendBlocking(buf, true);
             } catch (IOException e1) {
                 RemoteConnectionHandler.log.trace("Send failed: %s", e1);
             }
@@ -105,7 +105,7 @@
             buf.put(RemoteProtocol.CLIENT_CLOSED);
             buf.putInt(outboundClient.getId());
             buf.flip();
-            connectionHandler.getRemoteConnection().sendBlocking(buf);
+            connectionHandler.getRemoteConnection().sendBlocking(buf, true);
         } finally {
             bufferPool.free(buf);
         }

Modified: remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteConnection.java
===================================================================
--- remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteConnection.java	2010-03-04 04:30:28 UTC (rev 5793)
+++ remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteConnection.java	2010-03-04 04:38:28 UTC (rev 5794)
@@ -85,9 +85,32 @@
         messageHandlerSetter.set(handler);
     }
 
-    void sendBlocking(final ByteBuffer buffer) throws IOException {
+    void sendBlocking(final ByteBuffer buffer, boolean flush) throws IOException {
         try {
-            sendBlockingNoClose(buffer);
+            synchronized (writeLock) {
+                buffer.putInt(0, buffer.remaining() - 4);
+                boolean intr = false;
+                try {
+                    while (buffer.hasRemaining()) {
+                        if (channel.write(buffer) == 0) {
+                            try {
+                                channel.awaitWritable();
+                            } catch (InterruptedIOException e) {
+                                intr = Thread.interrupted();
+                            }
+                        }
+                    }
+                    if (flush) while (! channel.flush()) {
+                        try {
+                            channel.awaitWritable();
+                        } catch (InterruptedIOException e) {
+                            intr = Thread.interrupted();
+                        }
+                    }
+                } finally {
+                    if (intr) Thread.currentThread().interrupt();
+                }
+            }
         } catch (IOException e) {
             RemoteConnectionHandler.log.trace(e, "Closing channel due to failure to send");
             IoUtils.safeClose(channel);
@@ -103,26 +126,6 @@
         }
     }
 
-    void sendBlockingNoClose(final ByteBuffer buffer) throws IOException {
-        synchronized (writeLock) {
-            buffer.putInt(0, buffer.remaining() - 4);
-            boolean intr = false;
-            try {
-                while (buffer.hasRemaining()) {
-                    if (channel.write(buffer) == 0) {
-                        try {
-                            channel.awaitWritable();
-                        } catch (InterruptedIOException e) {
-                            intr = Thread.interrupted();
-                        }
-                    }
-                }
-            } finally {
-                if (intr) Thread.currentThread().interrupt();
-            }
-        }
-    }
-
     void flushBlocking() throws IOException {
         synchronized (writeLock) {
             try {
@@ -174,8 +177,7 @@
             buf.put(RemoteProtocol.AUTH_REJECTED);
             Buffers.putModifiedUtf8(buf, msg);
             buf.flip();
-            sendBlocking(buf);
-            flushBlocking();
+            sendBlocking(buf, true);
         } finally {
             free(buf);
         }
@@ -188,8 +190,7 @@
             buf.put(msgType);
             if (message != null) buf.put(message);
             buf.flip();
-            sendBlocking(buf);
-            flushBlocking();
+            sendBlocking(buf, true);
         } finally {
             free(buf);
         }

Modified: remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteConnectionHandler.java
===================================================================
--- remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteConnectionHandler.java	2010-03-04 04:30:28 UTC (rev 5793)
+++ remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteConnectionHandler.java	2010-03-04 04:38:28 UTC (rev 5794)
@@ -100,7 +100,7 @@
             Buffers.putModifiedUtf8(buffer, groupName);
             buffer.put((byte) 0);
             buffer.flip();
-            remoteConnection.sendBlocking(buffer);
+            remoteConnection.sendBlocking(buffer, true);
         } catch (IOException e) {
             result.setException(e);
         } catch (Throwable e) {

Modified: remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteMessageHandler.java
===================================================================
--- remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteMessageHandler.java	2010-03-04 04:30:28 UTC (rev 5793)
+++ remoting3/trunk/jboss-remoting/src/main/java/org/jboss/remoting3/remote/RemoteMessageHandler.java	2010-03-04 04:38:28 UTC (rev 5794)
@@ -78,7 +78,7 @@
                     outBuf.putInt(id);
                     outBuf.flip();
                     try {
-                        connection.sendBlocking(outBuf);
+                        connection.sendBlocking(outBuf, true);
                     } catch (IOException e) {
                         // the channel has suddenly failed
                         RemoteConnectionHandler.log.trace("Send failed: %s", e);

Modified: remoting3/trunk/jboss-remoting/src/test/resources/logging.properties
===================================================================
--- remoting3/trunk/jboss-remoting/src/test/resources/logging.properties	2010-03-04 04:30:28 UTC (rev 5793)
+++ remoting3/trunk/jboss-remoting/src/test/resources/logging.properties	2010-03-04 04:38:28 UTC (rev 5794)
@@ -24,7 +24,7 @@
 loggers=javax.security.sasl,org.jboss.xnio.ssl
 
 # Root logger configuration
-logger.level=INFO
+logger.level=TRACE
 logger.handlers=CONSOLE
 
 # Configure javax.security.sasl to be less verbose by default



More information about the jboss-remoting-commits mailing list