Author: remm Date: Wed Nov 23 08:06:10 2005 New Revision: 348470 URL: http://svn.apache.org/viewcvs?rev=348470&view=rev Log: - Fix crash when a socket is used outside of the process method (for example through JMX). I would assume a crash would occur with a socket which had its associated memory pool deallocated.
Modified: tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java Modified: tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java URL: http://svn.apache.org/viewcvs/tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=348470&r1=348469&r2=348470&view=diff ============================================================================== --- tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java (original) +++ tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java Wed Nov 23 08:06:10 2005 @@ -19,7 +19,6 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InterruptedIOException; -import java.net.InetAddress; import java.util.StringTokenizer; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; @@ -216,7 +215,7 @@ /** * Socket associated with the current connection. */ - protected long socket; + protected long socket = 0; /** @@ -907,6 +906,7 @@ // Recycle inputBuffer.recycle(); outputBuffer.recycle(); + this.socket = 0; return openSocket; @@ -1003,7 +1003,7 @@ } else if (actionCode == ActionCode.ACTION_REQ_HOST_ADDR_ATTRIBUTE) { // Get remote host address - if (remoteAddr == null) { + if (remoteAddr == null && (socket != 0)) { try { long sa = Address.get(Socket.APR_REMOTE, socket); remoteAddr = Address.getip(sa); @@ -1016,7 +1016,7 @@ } else if (actionCode == ActionCode.ACTION_REQ_LOCAL_NAME_ATTRIBUTE) { // Get local host name - if (localName == null) { + if (localName == null && (socket != 0)) { try { long sa = Address.get(Socket.APR_LOCAL, socket); localName = Address.getnameinfo(sa, 0); @@ -1029,7 +1029,7 @@ } else if (actionCode == ActionCode.ACTION_REQ_HOST_ATTRIBUTE) { // Get remote host name - if (remoteHost == null) { + if (remoteHost == null && (socket != 0)) { try { long sa = Address.get(Socket.APR_REMOTE, socket); remoteHost = Address.getnameinfo(sa, 0); @@ -1042,7 +1042,7 @@ } else if (actionCode == ActionCode.ACTION_REQ_LOCAL_ADDR_ATTRIBUTE) { // Get local host address - if (localAddr == null) { + if (localAddr == null && (socket != 0)) { try { long sa = Address.get(Socket.APR_LOCAL, socket); Sockaddr addr = new Sockaddr(); @@ -1060,7 +1060,7 @@ } else if (actionCode == ActionCode.ACTION_REQ_REMOTEPORT_ATTRIBUTE) { // Get remote port - if (remotePort == -1) { + if (remotePort == -1 && (socket != 0)) { try { long sa = Address.get(Socket.APR_REMOTE, socket); Sockaddr addr = Address.getInfo(sa); @@ -1074,7 +1074,7 @@ } else if (actionCode == ActionCode.ACTION_REQ_LOCALPORT_ATTRIBUTE) { // Get local port - if (localPort == -1) { + if (localPort == -1 && (socket != 0)) { try { long sa = Address.get(Socket.APR_LOCAL, socket); Sockaddr addr = new Sockaddr(); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]