fix for BZ 42648
authorfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 13 Jun 2007 17:00:21 +0000 (17:00 +0000)
committerfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 13 Jun 2007 17:00:21 +0000 (17:00 +0000)
http://issues.apache.org/bugzilla/show_bug.cgi?id=42648

git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@546955 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java

index 7d5d6b9..6839d06 100644 (file)
@@ -63,12 +63,15 @@ public class NioReplicationTask extends AbstractRxTask {
 
     // loop forever waiting for work to do
     public synchronized void run() { 
-        if ( (getOptions() & OPTION_DIRECT_BUFFER) == OPTION_DIRECT_BUFFER ) {
-            buffer = ByteBuffer.allocateDirect(getRxBufSize());
-        }else {
-            buffer = ByteBuffer.allocate (getRxBufSize());
+        if ( buffer == null ) {
+            if ( (getOptions() & OPTION_DIRECT_BUFFER) == OPTION_DIRECT_BUFFER) {
+                buffer = ByteBuffer.allocateDirect(getRxBufSize());
+            } else {
+                buffer = ByteBuffer.allocate(getRxBufSize());
+            }
+        } else {
+            buffer.clear();
         }
-
         if (key == null) {
             return;    // just in case
         }