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: [email protected]
For additional commands, e-mail: [email protected]