You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2017/03/09 11:19:55 UTC
svn commit: r1786137 - in /tomcat/trunk/java/org/apache/tomcat/util/net:
Nio2Endpoint.java SocketWrapperBase.java
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org