consolidate the usage of the NioChannel buffers
authorfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Thu, 31 May 2007 19:44:27 +0000 (19:44 +0000)
committerfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Thu, 31 May 2007 19:44:27 +0000 (19:44 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@543228 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/tomcat/util/net/NioBlockingSelector.java
java/org/apache/tomcat/util/net/NioSelectorPool.java

index a629613..4190527 100644 (file)
@@ -48,10 +48,6 @@ public class NioBlockingSelector {
         boolean timedout = false;
         int keycount = 1; //assume we can write
         long time = System.currentTimeMillis(); //start the timeout timer
-        if (socket.getBufHandler().getWriteBuffer() != buf) {
-            socket.getBufHandler().getWriteBuffer().put(buf);
-            buf = socket.getBufHandler().getWriteBuffer();
-        }
         try {
             while ( (!timedout) && buf.hasRemaining()) {
                 if (keycount > 0) { //only write if we were registered for a write
index 1998105..9b88631 100644 (file)
@@ -29,7 +29,6 @@ import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.MutableInteger;
-import java.util.Iterator;
 
 /**
  *
@@ -138,6 +137,10 @@ public class NioSelectorPool {
     
     public int write(ByteBuffer buf, NioChannel socket, Selector selector, 
                      long writeTimeout, boolean block,MutableInteger lastWrite) throws IOException {
+        if (socket.getBufHandler().getWriteBuffer() != buf) {
+            socket.getBufHandler().getWriteBuffer().put(buf);
+            buf = socket.getBufHandler().getWriteBuffer();
+        }
         if ( SHARED && block ) {
             return NioBlockingSelector.write(buf,socket,writeTimeout,lastWrite);
         }
@@ -146,10 +149,6 @@ public class NioSelectorPool {
         boolean timedout = false;
         int keycount = 1; //assume we can write
         long time = System.currentTimeMillis(); //start the timeout timer
-        if ( socket.getBufHandler().getWriteBuffer()!= buf ) {
-            socket.getBufHandler().getWriteBuffer().put(buf);
-            buf = socket.getBufHandler().getWriteBuffer();
-        }
         try {
             while ( (!timedout) && buf.hasRemaining() ) {
                 int cnt = 0;