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 2014/03/12 01:06:10 UTC
svn commit: r1576548 - in /tomcat/trunk/java/org/apache:
coyote/http11/upgrade/Nio2ServletInputStream.java
coyote/http11/upgrade/Nio2ServletOutputStream.java
tomcat/util/net/Nio2Channel.java
Author: remm
Date: Wed Mar 12 00:06:10 2014
New Revision: 1576548
URL: http://svn.apache.org/r1576548
Log:
- Harmonize with the NIO1 connector for upgrade close.
- Actually understand where the (cosmetic) async close traces were coming from.
Modified:
tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java
tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletOutputStream.java
tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Channel.java
Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java?rev=1576548&r1=1576547&r2=1576548&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java Wed Mar 12 00:06:10 2014
@@ -71,6 +71,10 @@ public class Nio2ServletInputStream exte
public void failed(Throwable exc, SocketWrapper<Nio2Channel> attachment) {
attachment.setError(true);
readPending = false;
+ if (exc instanceof AsynchronousCloseException) {
+ // If already closed, don't call onError and close again
+ return;
+ }
onError(exc);
try {
close();
@@ -189,11 +193,7 @@ public class Nio2ServletInputStream exte
@Override
protected void doClose() throws IOException {
- try {
- channel.close();
- } catch (AsynchronousCloseException e) {
- // Ignore
- }
+ channel.close();
}
private int fillReadBuffer(boolean block) throws IOException {
Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletOutputStream.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletOutputStream.java?rev=1576548&r1=1576547&r2=1576548&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletOutputStream.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletOutputStream.java Wed Mar 12 00:06:10 2014
@@ -63,6 +63,10 @@ public class Nio2ServletOutputStream ext
public void failed(Throwable exc, SocketWrapper<Nio2Channel> attachment) {
attachment.setError(true);
writePending = false;
+ if (exc instanceof AsynchronousCloseException) {
+ // If already closed, don't call onError and close again
+ return;
+ }
onError(exc);
try {
close();
@@ -157,10 +161,6 @@ public class Nio2ServletOutputStream ext
@Override
protected void doClose() throws IOException {
- try {
- channel.close();
- } catch (AsynchronousCloseException e) {
- // Ignore
- }
+ channel.close(true);
}
}
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Channel.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Channel.java?rev=1576548&r1=1576547&r2=1576548&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Channel.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Channel.java Wed Mar 12 00:06:10 2014
@@ -84,12 +84,15 @@ public class Nio2Channel implements Asyn
*/
@Override
public void close() throws IOException {
- getIOChannel().close();
+ sc.close();
}
public void close(boolean force) throws IOException {
- if (isOpen() || force ) close();
+ if (isOpen() || force) {
+ close();
+ }
}
+
/**
* Tells whether or not this channel is open.
*
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org