[tomcat] branch 8.5.x updated: Revert stream memory footprint reduction and incomplete fixes

2020-09-08 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
 new c3b7372  Revert stream memory footprint reduction and incomplete fixes
c3b7372 is described below

commit c3b7372b2bd09973222d5d6d5610a5e09d1292bc
Author: Mark Thomas 
AuthorDate: Tue Sep 8 10:16:57 2020 +0100

Revert stream memory footprint reduction and incomplete fixes

Revert the changes due to the steady stream of regressions that are
being reported and.or found by the CI systems. A more robust solution is
required.
---
 java/org/apache/coyote/http2/Stream.java | 41 +++-
 webapps/docs/changelog.xml   |  5 
 2 files changed, 19 insertions(+), 27 deletions(-)

diff --git a/java/org/apache/coyote/http2/Stream.java 
b/java/org/apache/coyote/http2/Stream.java
index 46719da..813980c 100644
--- a/java/org/apache/coyote/http2/Stream.java
+++ b/java/org/apache/coyote/http2/Stream.java
@@ -297,19 +297,14 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
 
 
 void doStreamCancel(String msg, Http2Error error) throws CloseNowException 
{
-// Avoid NPEs on duplicate cancellations
-StreamOutputBuffer streamOutputBuffer = this.streamOutputBuffer;
-Response coyoteResponse = this.coyoteResponse;
 StreamException se = new StreamException(msg, error, getIdAsInt());
-if (streamOutputBuffer != null && coyoteResponse != null) {
-// Prevent the application making further writes
-streamOutputBuffer.closed = true;
-// Prevent Tomcat's error handling trying to write
-coyoteResponse.setError();
-coyoteResponse.setErrorReported();
-// Trigger a reset once control returns to Tomcat
-streamOutputBuffer.reset = se;
-}
+// Prevent the application making further writes
+streamOutputBuffer.closed = true;
+// Prevent Tomcat's error handling trying to write
+coyoteResponse.setError();
+coyoteResponse.setErrorReported();
+// Trigger a reset once control returns to Tomcat
+streamOutputBuffer.reset = se;
 throw new CloseNowException(msg, se);
 }
 
@@ -477,13 +472,7 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
 name), Http2Error.PROTOCOL_ERROR, getIdAsInt());
 }
 
-// Avoid NPE if Stream has been closed on Stream specific thread
-Request coyoteRequest = this.coyoteRequest;
-if (coyoteRequest != null) {
-// HTTP/2 headers are already always lower case
-// In 8.5.x trailer headers are added to headers collection.
-coyoteRequest.getMimeHeaders().addValue(name).setString(value);
-}
+coyoteRequest.getMimeHeaders().addValue(name).setString(value);
 }
 }
 }
@@ -624,14 +613,9 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
 
 
 final boolean isContentLengthInconsistent() {
-Request coyoteRequest = this.coyoteRequest;
-// May be null when processing trailer headers after stream has been
-// closed.
-if (coyoteRequest != null) {
-long contentLengthHeader = coyoteRequest.getContentLengthLong();
-if (contentLengthHeader > -1 && contentLengthReceived != 
contentLengthHeader) {
-return true;
-}
+long contentLengthHeader = coyoteRequest.getContentLengthLong();
+if (contentLengthHeader > -1 && contentLengthReceived != 
contentLengthHeader) {
+return true;
 }
 return false;
 }
@@ -737,12 +721,15 @@ public class Stream extends AbstractStream implements 
HeaderEmitter {
 if (log.isDebugEnabled()) {
 log.debug(sm.getString("stream.recycle", getConnectionId(), 
getIdentifier()));
 }
+/*
+ * Temporarily disabled due to multiple regressions (NPEs)
 coyoteRequest = null;
 cookieHeader = null;
 coyoteResponse = null;
 inputBuffer = null;
 streamOutputBuffer = null;
 http2OutputBuffer = null;
+*/
 }
 
 
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index a7a7430..2337deb 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -157,6 +157,11 @@
 streams to account for DATA frames containing zero-length padding.
 (markt)
   
+  
+64710: Revert the changes to reduce the memory footprint of
+closed HTTP/2 streams as they triggered multiple regressions in the 
form
+of NullPointerExceptions. (markt)
+  
 
   
   


-
To 

[tomcat] branch 8.5.x updated: Revert

2020-05-13 Thread remm
This is an automated email from the ASF dual-hosted git repository.

remm pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
 new 2808a97  Revert
2808a97 is described below

commit 2808a97cd1c524fa8e187b4bf4bbd189c80a5085
Author: remm 
AuthorDate: Wed May 13 15:48:12 2020 +0200

Revert
---
 java/org/apache/catalina/connector/CoyoteAdapter.java | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java 
b/java/org/apache/catalina/connector/CoyoteAdapter.java
index a559124..0f11f3d 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -72,8 +72,6 @@ public class CoyoteAdapter implements Adapter {
 System.getProperty("java.vm.vendor") + "/" +
 System.getProperty("java.runtime.version") + ")";
 
-private static final String INVALID_URI = "Invalid URI ";
-
 private static final EnumSet SSL_ONLY =
 EnumSet.of(SessionTrackingMode.SSL);
 
@@ -616,7 +614,7 @@ public class CoyoteAdapter implements Adapter {
 connector.getService().getContainer().logAccess(request, 
response, 0, true);
 return false;
 } else {
-response.sendError(400, INVALID_URI);
+response.sendError(400, "Invalid URI");
 }
 }
 
@@ -634,7 +632,7 @@ public class CoyoteAdapter implements Adapter {
 try {
 req.getURLDecoder().convert(decodedURI.getByteChunk(), 
connector.getEncodedSolidusHandlingInternal());
 } catch (IOException ioe) {
-response.sendError(400, INVALID_URI + ioe.getMessage());
+response.sendError(400, "Invalid URI: " + ioe.getMessage());
 }
 // Normalization
 if (normalize(req.decodedURI())) {
@@ -645,7 +643,7 @@ public class CoyoteAdapter implements Adapter {
 response.sendError(400, "Invalid URI");
 }
 } else {
-response.sendError(400, INVALID_URI);
+response.sendError(400, "Invalid URI");
 }
 } else {
 /* The URI is chars or String, and has been sent using an in-memory


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



[tomcat] branch 8.5.x updated: Revert "Check for non-null 'methods'"

2020-02-20 Thread mgrigorov
This is an automated email from the ASF dual-hosted git repository.

mgrigorov pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
 new 42a5701  Revert "Check for non-null 'methods'"
42a5701 is described below

commit 42a5701727cdcebb9e8e8346941d679bcda60eac
Author: Martin Tzvetanov Grigorov 
AuthorDate: Thu Feb 20 13:24:48 2020 +0200

Revert "Check for non-null 'methods'"

This reverts commit 84abf86f24142f1790b9cf5a31b8cce94822c8ce.
---
 java/javax/servlet/http/HttpServlet.java | 24 +++-
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/java/javax/servlet/http/HttpServlet.java 
b/java/javax/servlet/http/HttpServlet.java
index 2ac26cf..aedbee6 100644
--- a/java/javax/servlet/http/HttpServlet.java
+++ b/java/javax/servlet/http/HttpServlet.java
@@ -502,21 +502,19 @@ public abstract class HttpServlet extends GenericServlet {
 }
 // End of Tomcat specific hack
 
-if (methods != null) {
-for (int i = 0; i < methods.length; i++) {
-Method m = methods[i];
+for (int i=0; i

[tomcat] branch 8.5.x updated: Revert the fix for https://bz.apache.org/bugzilla/show_bug.cgi?id=63815

2019-11-25 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
 new d946928  Revert the fix for 
https://bz.apache.org/bugzilla/show_bug.cgi?id=63815
d946928 is described below

commit d946928f956adffa59fcf94fd759dbab6e0e38a4
Author: Mark Thomas 
AuthorDate: Mon Nov 25 20:44:37 2019 +

Revert the fix for https://bz.apache.org/bugzilla/show_bug.cgi?id=63815

This triggered various regressions, particularly with daemon.sh
---
 bin/catalina.sh| 16 
 bin/daemon.sh  |  4 ++--
 bin/tool-wrapper.sh|  2 +-
 webapps/docs/changelog.xml | 10 ++
 4 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/bin/catalina.sh b/bin/catalina.sh
index baa0bd9..5fbdb72 100755
--- a/bin/catalina.sh
+++ b/bin/catalina.sh
@@ -354,7 +354,7 @@ if [ "$1" = "debug" ] ; then
 echo "Using Security Manager"
   fi
   shift
-  exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER "$JAVA_OPTS" 
"$CATALINA_OPTS" \
+  exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS 
$CATALINA_OPTS \
 -D$ENDORSED_PROP="$JAVA_ENDORSED_DIRS" \
 -classpath "$CLASSPATH" \
 -sourcepath "$CATALINA_HOME"/../../java \
@@ -365,7 +365,7 @@ if [ "$1" = "debug" ] ; then
 -Djava.io.tmpdir="$CATALINA_TMPDIR" \
 org.apache.catalina.startup.Bootstrap "$@" start
 else
-  exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER "$JAVA_OPTS" 
"$CATALINA_OPTS" \
+  exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS 
$CATALINA_OPTS \
 -D$ENDORSED_PROP="$JAVA_ENDORSED_DIRS" \
 -classpath "$CLASSPATH" \
 -sourcepath "$CATALINA_HOME"/../../java \
@@ -384,7 +384,7 @@ elif [ "$1" = "run" ]; then
   echo "Using Security Manager"
 fi
 shift
-eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER 
"$JAVA_OPTS" "$CATALINA_OPTS" \
+eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER 
$JAVA_OPTS $CATALINA_OPTS \
   -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
   -classpath "\"$CLASSPATH\"" \
   -Djava.security.manager \
@@ -394,7 +394,7 @@ elif [ "$1" = "run" ]; then
   -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
   org.apache.catalina.startup.Bootstrap "$@" start
   else
-eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER 
"$JAVA_OPTS" "$CATALINA_OPTS" \
+eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER 
$JAVA_OPTS $CATALINA_OPTS \
   -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
   -classpath "\"$CLASSPATH\"" \
   -Dcatalina.base="\"$CATALINA_BASE\"" \
@@ -452,7 +452,7 @@ elif [ "$1" = "start" ] ; then
   echo "Using Security Manager"
 fi
 shift
-eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER 
"$JAVA_OPTS" "$CATALINA_OPTS" \
+eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER 
$JAVA_OPTS $CATALINA_OPTS \
   -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
   -classpath "\"$CLASSPATH\"" \
   -Djava.security.manager \
@@ -464,7 +464,7 @@ elif [ "$1" = "start" ] ; then
   >> "$CATALINA_OUT" 2>&1 "&"
 
   else
-eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER 
"$JAVA_OPTS" "$CATALINA_OPTS" \
+eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER 
$JAVA_OPTS $CATALINA_OPTS \
   -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
   -classpath "\"$CLASSPATH\"" \
   -Dcatalina.base="\"$CATALINA_BASE\"" \
@@ -517,7 +517,7 @@ elif [ "$1" = "stop" ] ; then
 fi
   fi
 
-  eval "\"$_RUNJAVA\"" $LOGGING_MANAGER "$JAVA_OPTS" \
+  eval "\"$_RUNJAVA\"" $LOGGING_MANAGER $JAVA_OPTS \
 -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
 -classpath "\"$CLASSPATH\"" \
 -Dcatalina.base="\"$CATALINA_BASE\"" \
@@ -604,7 +604,7 @@ elif [ "$1" = "stop" ] ; then
 
 elif [ "$1" = "configtest" ] ; then
 
-eval "\"$_RUNJAVA\"" $LOGGING_MANAGER "$JAVA_OPTS" \
+eval "\"$_RUNJAVA\"" $LOGGING_MANAGER $JAVA_OPTS \
   -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
   -classpath "\"$CLASSPATH\"" \
   -Dcatalina.base="\"$CATALINA_BASE\"" \
diff --git a/bin/daemon.sh b/bin/daemon.sh
index 3c517ba..afa4c89 100755
--- a/bin/daemon.sh
+++ b/bin/daemon.sh
@@ -208,7 +208,7 @@ case "$1" in
   -outfile "&1" \
   -errfile "&2" \
   -classpath "$CLASSPATH" \
-  "$LOGGING_CONFIG" "$JAVA_OPTS" "$CATALINA_OPTS" \
+  "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \
   -D$ENDORSED_PROP="$JAVA_ENDORSED_DIRS" \
   -Dcatalina.base="$CATALINA_BASE" \
   -Dcatalina.home="$CATALINA_HOME" \
@@ -225,7 +225,7 @@ case "$1" in
   -outfile "$CATALINA_OUT" \
   -errfile "&1" \
   -classpath "$CLASSPATH" \
-  "$LOGGING_CONFIG" "$JAVA_OPTS" "$CATALINA_OPTS" \
+  "$LOGGING_CONFIG" $JAVA_OPTS 

[tomcat] branch 8.5.x updated: Revert unnecessary change

2019-09-06 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
 new cfa3cbf  Revert unnecessary change
cfa3cbf is described below

commit cfa3cbf3aa7ec5816b84ee54841d75e07ff7f27f
Author: Mark Thomas 
AuthorDate: Fri Sep 6 20:31:26 2019 +0100

Revert unnecessary change
---
 BUILDING.txt | 10 --
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/BUILDING.txt b/BUILDING.txt
index 1e6d354..e0811af 100644
--- a/BUILDING.txt
+++ b/BUILDING.txt
@@ -298,13 +298,11 @@ You can build them by using the following commands:
 
 Release managers will be provided with the necessary credentials by the 
PMC.
 It will also be necessary to enable TLS 1.1 and TLS 1.2 by default (they 
are
-disabled by default on Java 7) and to specify a more up to date trust store
-than that provided with the most recent Java 7 release for the build 
process
-to communicate with the code signing service. The simplest way is by 
setting
-the ANT_OPTS environment variable. E.g. (for Windows):
+disabled by default on Java 7) for the build process to communicate with 
the
+code signing service. The simplest way is by setting the ANT_OPTS
+environment variable. E.g. (for Windows):
 
-set ANT_OPTS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2 ^
- 
-Djavax.net.ssl.trustStore=C:\java-home\jre\lib\security\cacerts
+set ANT_OPTS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
 
  4. Build the release:
 


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



[tomcat] branch 8.5.x updated: Revert unnecessary back-port

2019-06-04 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
 new a7386ee  Revert unnecessary back-port
a7386ee is described below

commit a7386ee2d6850c77e494852289107c71f6f24b91
Author: Mark Thomas 
AuthorDate: Tue Jun 4 16:28:18 2019 +0100

Revert unnecessary back-port
---
 java/org/apache/coyote/AbstractProtocol.java   | 7 ---
 .../apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java   | 4 
 2 files changed, 11 deletions(-)

diff --git a/java/org/apache/coyote/AbstractProtocol.java 
b/java/org/apache/coyote/AbstractProtocol.java
index 4cbda42..837f805 100644
--- a/java/org/apache/coyote/AbstractProtocol.java
+++ b/java/org/apache/coyote/AbstractProtocol.java
@@ -35,7 +35,6 @@ import javax.management.ObjectName;
 import javax.servlet.http.HttpUpgradeHandler;
 import javax.servlet.http.WebConnection;
 
-import org.apache.coyote.http11.upgrade.InternalHttpUpgradeHandler;
 import org.apache.juli.logging.Log;
 import org.apache.tomcat.InstanceManager;
 import org.apache.tomcat.util.ExceptionUtils;
@@ -861,12 +860,6 @@ public abstract class AbstractProtocol implements 
ProtocolHandler,
 
upgradeToken.getContextBind().unbind(false, oldCL);
 }
 }
-if (httpUpgradeHandler instanceof 
InternalHttpUpgradeHandler) {
-if (((InternalHttpUpgradeHandler) 
httpUpgradeHandler).hasAsyncIO()) {
-// The handler will initiate all further 
I/O
-state = SocketState.LONG;
-}
-}
 }
 }
 } while ( state == SocketState.UPGRADING);
diff --git 
a/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java 
b/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
index 8c5ce39..936784e 100644
--- a/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
+++ b/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java
@@ -37,8 +37,4 @@ public interface InternalHttpUpgradeHandler extends 
HttpUpgradeHandler {
 void setSslSupport(SSLSupport sslSupport);
 
 void pause();
-
-default boolean hasAsyncIO() {
-return false;
-}
 }
\ No newline at end of file


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



[tomcat] branch 8.5.x updated: Revert to the previous revision

2019-03-27 Thread remm
This is an automated email from the ASF dual-hosted git repository.

remm pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
 new 8105776  Revert to the previous revision
8105776 is described below

commit 8105776b9c4d484ea8fda8f8be8eb0f82d6c9a1f
Author: remm 
AuthorDate: Wed Mar 27 18:37:09 2019 +0100

Revert to the previous revision

This was equivalent but slightly less efficient. Also cleanup the
flushNonBlocking IOE check.
---
 java/org/apache/tomcat/util/net/Nio2Endpoint.java | 29 ++-
 1 file changed, 23 insertions(+), 6 deletions(-)

diff --git a/java/org/apache/tomcat/util/net/Nio2Endpoint.java 
b/java/org/apache/tomcat/util/net/Nio2Endpoint.java
index 27891d5..c38dc70 100644
--- a/java/org/apache/tomcat/util/net/Nio2Endpoint.java
+++ b/java/org/apache/tomcat/util/net/Nio2Endpoint.java
@@ -731,7 +731,22 @@ public class Nio2Endpoint extends 
AbstractJsseEndpoint {
 if (writeNotify) {
 return true;
 }
-return super.isReadyForWrite();
+
+if (!writePending.tryAcquire()) {
+writeInterest = true;
+return false;
+}
+
+if (socketBufferHandler.isWriteBufferEmpty() && 
nonBlockingWriteBuffer.isEmpty()) {
+writePending.release();
+return true;
+}
+
+boolean isReady = !flushNonBlockingInternal(true);
+if (!isReady) {
+writeInterest = true;
+}
+return isReady;
 }
 }
 
@@ -1233,6 +1248,7 @@ public class Nio2Endpoint extends 
AbstractJsseEndpoint {
 // indicate the end of a write
 // Uses: if (writePending.tryAcquire(socketWrapper.getTimeout(), 
TimeUnit.MILLISECONDS))
 synchronized (writeCompletionHandler) {
+checkError();
 if (writeNotify || writePending.tryAcquire()) {
 // No pending completion handler, so writing to the main 
buffer
 // is possible
@@ -1244,7 +1260,7 @@ public class Nio2Endpoint extends 
AbstractJsseEndpoint {
 // Remaining data must be buffered
 nonBlockingWriteBuffer.add(buf, off, len);
 }
-flushNonBlocking(true);
+flushNonBlockingInternal(true);
 } else {
 nonBlockingWriteBuffer.add(buf, off, len);
 }
@@ -1283,6 +1299,7 @@ public class Nio2Endpoint extends 
AbstractJsseEndpoint {
 // indicate the end of a write
 // Uses: if (writePending.tryAcquire(socketWrapper.getTimeout(), 
TimeUnit.MILLISECONDS))
 synchronized (writeCompletionHandler) {
+checkError();
 if (writeNotify || writePending.tryAcquire()) {
 // No pending completion handler, so writing to the main 
buffer
 // is possible
@@ -1292,7 +1309,7 @@ public class Nio2Endpoint extends 
AbstractJsseEndpoint {
 // Remaining data must be buffered
 nonBlockingWriteBuffer.add(from);
 }
-flushNonBlocking(true);
+flushNonBlockingInternal(true);
 } else {
 nonBlockingWriteBuffer.add(from);
 }
@@ -1357,11 +1374,11 @@ public class Nio2Endpoint extends 
AbstractJsseEndpoint {
 
 @Override
 protected boolean flushNonBlocking() throws IOException {
-return flushNonBlocking(false);
+checkError();
+return flushNonBlockingInternal(false);
 }
 
-private boolean flushNonBlocking(boolean hasPermit) throws IOException 
{
-checkError();
+private boolean flushNonBlockingInternal(boolean hasPermit) {
 synchronized (writeCompletionHandler) {
 if (writeNotify || hasPermit || writePending.tryAcquire()) {
 // The code that was notified is now writing its data


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