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 2015/09/17 16:52:39 UTC
svn commit: r1703640 - in /tomcat/trunk/java/org/apache/tomcat/util/net:
NioEndpoint.java SecureNioChannel.java
Author: remm
Date: Thu Sep 17 14:52:39 2015
New Revision: 1703640
URL: http://svn.apache.org/r1703640
Log:
Remove finally and leave the channel in sendfile mode until the sendfile is done. Also check for close first since sendfile is reset on closing.
Note: this could hide away 57265, so it's probably a good idea to not port it to 8.
Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
tomcat/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1703640&r1=1703639&r2=1703640&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Thu Sep 17 14:52:39 2015
@@ -958,7 +958,9 @@ public class NioEndpoint extends Abstrac
// Configure output channel
sc = socketWrapper.getSocket();
- sc.setSendFile(true);
+ if (calledByProcessor) {
+ sc.setSendFile(true);
+ }
// TLS/SSL channel is slightly different
WritableByteChannel wc = ((sc instanceof SecureNioChannel)?sc:sc.getIOChannel());
@@ -987,6 +989,7 @@ public class NioEndpoint extends Abstrac
log.debug("Send file complete for: "+sd.fileName);
}
socketWrapper.setSendfileData(null);
+ sc.setSendFile(false);
try {
sd.fchannel.close();
} catch (Exception ignore) {
@@ -1035,8 +1038,6 @@ public class NioEndpoint extends Abstrac
cancelledKey(sk);
}
return SendfileState.ERROR;
- } finally {
- if (sc!=null) sc.setSendFile(false);
}
}
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java?rev=1703640&r1=1703639&r2=1703640&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java Thu Sep 17 14:52:39 2015
@@ -583,12 +583,12 @@ public class SecureNioChannel extends Ni
int written = sc.write(src);
return written;
} else {
+ //are we closing or closed?
+ if ( closing || closed) throw new IOException(sm.getString("channel.nio.ssl.closing"));
//make sure we can handle expand, and that we only use one buffer
if (!this.isSendFile() && src != bufHandler.getWriteBuffer()) {
throw new IllegalArgumentException(sm.getString("channel.nio.ssl.invalidBuffer"));
}
- //are we closing or closed?
- if ( closing || closed) throw new IOException(sm.getString("channel.nio.ssl.closing"));
//the number of bytes written
int written = 0;
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org