Author: remm
Date: Thu Mar  9 11:19:55 2017
New Revision: 1786137

URL: http://svn.apache.org/viewvc?rev=1786137&view=rev
Log:
Readd blocking (for now) and fix loop indexes (ooops).

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1786137&r1=1786136&r2=1786137&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Thu Mar  9 
11:19:55 2017
@@ -1031,6 +1031,12 @@ public class Nio2Endpoint extends Abstra
             Nio2Endpoint.startInline();
             getSocket().write(srcs, offset, length, timeout, unit, state, new 
GatherWriteCompletionHandler<>());
             Nio2Endpoint.endInline();
+            if (block && state.state == CompletionState.PENDING) {
+                if (!awaitWriteComplete(timeout, unit)) {
+                    handler.failed(new SocketTimeoutException(), attachment);
+                    return CompletionState.ERROR;
+                }
+            }
             return state.state;
         }
 

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1786137&r1=1786136&r2=1786137&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Thu Mar 
 9 11:19:55 2017
@@ -832,8 +832,8 @@ public abstract class SocketWrapperBase<
         @Override
         public CompletionHandlerCall callHandler(CompletionState state, 
ByteBuffer[] buffers,
                 int offset, int length) {
-            for (int i = 0; i < offset; i++) {
-                if (buffers[i].remaining() > 0) {
+            for (int i = 0; i < length; i++) {
+                if (buffers[offset + i].remaining() > 0) {
                     return CompletionHandlerCall.CONTINUE;
                 }
             }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to