[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