Author: arnaudsimon
Date: Tue May 13 08:46:23 2008
New Revision: 655923

URL: http://svn.apache.org/viewvc?rev=655923&view=rev
Log:
QPID-1006: Don't use tcp-nodelay as default and set socket buffer size only 
when the corresponding property is set.

Modified:
    
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaHandler.java

Modified: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaHandler.java?rev=655923&r1=655922&r2=655923&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaHandler.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaHandler.java
 Tue May 13 08:46:23 2008
@@ -54,7 +54,7 @@
 //RA making this public until we sort out the package issues
 public class MinaHandler<E> implements IoHandler
 {
-    private static final int DEFAULT_BUFFER_SIZE = 64 * 1024;
+    private static final int MAX_FRAME_SIZE = 64 * 1024 - 1;
     /** Default buffer size for pending messages reads */
     private static final String DEFAULT_READ_BUFFER_LIMIT = "262144";
     /** Default buffer size for pending messages writes */
@@ -206,10 +206,17 @@
         IoServiceConfig acceptorConfig = connector.getDefaultConfig();
         acceptorConfig.setThreadModel(ThreadModel.MANUAL);
         SocketSessionConfig scfg = (SocketSessionConfig) 
acceptorConfig.getSessionConfig();
-        
scfg.setTcpNoDelay("true".equalsIgnoreCase(System.getProperty("amqj.tcpNoDelay",
 "true")));
-        scfg.setSendBufferSize(Integer.getInteger("amqj.sendBufferSize", 
DEFAULT_BUFFER_SIZE));
-        scfg.setReceiveBufferSize(Integer.getInteger("amqj.receiveBufferSize", 
DEFAULT_BUFFER_SIZE));
-
+        scfg.setTcpNoDelay(Boolean.getBoolean("amqj.tcpNoDelay"));
+        Integer sendBufferSize = Integer.getInteger("amqj.sendBufferSize");
+        if (sendBufferSize != null && sendBufferSize > 0)
+        {
+            scfg.setSendBufferSize(sendBufferSize);
+        }
+        Integer receiveBufferSize = 
Integer.getInteger("amqj.receiveBufferSize");
+        if (receiveBufferSize != null && receiveBufferSize > 0)
+        {
+            scfg.setReceiveBufferSize(receiveBufferSize);
+        }       
         connector.setWorkerTimeout(0);
         ConnectFuture cf = connector.connect(address, handler);
         cf.join();
@@ -270,9 +277,7 @@
         {
             // XXX: hardcoded max-frame
             return new Connection
-                (new Disassembler(new OutputHandler(sender),
-                        Math.min(DEFAULT_BUFFER_SIZE, 
Integer.getInteger("amqj.sendBufferSize", DEFAULT_BUFFER_SIZE)) - 1),
-                 delegate);
+                (new Disassembler(new OutputHandler(sender), MAX_FRAME_SIZE), 
delegate);
         }
 
         public Receiver<java.nio.ByteBuffer> receiver(Connection conn)


Reply via email to