Author: fhanik
Date: Fri Aug 4 14:52:51 2006
New Revision: 428896
URL: http://svn.apache.org/viewvc?rev=428896&view=rev
Log:
Correct close down, now the close can be limited to 2 files if it needs to
change
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java
tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioChannel.java
tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java?rev=428896&r1=428895&r2=428896&view=diff
==============================================================================
---
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java
(original)
+++
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java
Fri Aug 4 14:52:51 2006
@@ -588,13 +588,12 @@
if (key != null) key.interestOps(SelectionKey.OP_READ);
} catch (CancelledKeyException ckx) {
try {
- if ( key != null && key.attachment() != null ) {
- KeyAttachment ka = (KeyAttachment)key.attachment();
- ka.setError(true); //set to collect this socket
immediately
+ if ( att != null ) {
+ att.setError(true); //set to collect this socket
immediately
+ att.setWakeUp(false);
}
- socket.getIOChannel().socket().close();
- socket.close();
- att.setWakeUp(false);
+ try {socket.close();}catch (Exception ignore){}
+ if ( socket.isOpen() ) socket.close(true);
} catch (Exception ignore) {}
}
}
Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioChannel.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioChannel.java?rev=428896&r1=428895&r2=428896&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioChannel.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioChannel.java Fri
Aug 4 14:52:51 2006
@@ -51,11 +51,12 @@
* @todo Implement this java.nio.channels.Channel method
*/
public void close() throws IOException {
+ getIOChannel().socket().close();
sc.close();
}
public void close(boolean force) throws IOException {
- close();
+ if (isOpen() || force ) close();
}
/**
* Tells whether or not this channel is open.
Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=428896&r1=428895&r2=428896&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Fri
Aug 4 14:52:51 2006
@@ -937,8 +937,8 @@
KeyAttachment ka =
(KeyAttachment)key.attachment();
ka.setError(true); //set to collect this
socket immediately
}
- socket.getIOChannel().socket().close();
- socket.close();
+ try {socket.close();}catch (Exception ignore){}
+ if ( socket.isOpen() ) socket.close(true);
} catch ( Exception ignore ) {}
}
}
@@ -1259,16 +1259,16 @@
if ((event) && (handler.event(socket, error) ==
Handler.SocketState.CLOSED)) {
// Close socket and pool
try {
- socket.getIOChannel().socket().close();
- socket.close();
+ try {socket.close();}catch (Exception ignore){}
+ if ( socket.isOpen() ) socket.close(true);
}catch ( Exception x ) {
log.error("",x);
}
} else if ((!event) && (handler.process(socket) ==
Handler.SocketState.CLOSED)) {
// Close socket and pool
try {
- socket.getIOChannel().socket().close();
- socket.close();
+ try {socket.close();}catch (Exception ignore){}
+ if ( socket.isOpen() ) socket.close(true);
}catch ( Exception x ) {
log.error("",x);
}
@@ -1431,8 +1431,8 @@
if (handler.process(socket) == Handler.SocketState.CLOSED) {
// Close socket and pool
try {
- socket.getIOChannel().socket().close();
- socket.close();
+ try {socket.close();}catch (Exception ignore){}
+ if ( socket.isOpen() ) socket.close(true);
} catch ( Exception x ) {
log.error("",x);
}
@@ -1467,8 +1467,8 @@
if (handler.event(socket, error) == Handler.SocketState.CLOSED) {
// Close socket and pool
try {
- socket.getIOChannel().socket().close();
- socket.close();
+ try {socket.close();}catch (Exception ignore){}
+ if ( socket.isOpen() ) socket.close(true);
} catch ( Exception x ) {
log.error("",x);
}
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java?rev=428896&r1=428895&r2=428896&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java
Fri Aug 4 14:52:51 2006
@@ -268,8 +268,11 @@
try {
close();
}finally {
- closed = true;
- sc.close();
+ if ( force || closed ) {
+ closed = true;
+ sc.socket().close();
+ sc.close();
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]