Return-Path: Delivered-To: apmail-jakarta-tomcat-dev-archive@apache.org Received: (qmail 14463 invoked from network); 19 Dec 2002 15:57:25 -0000 Received: from exchange.sun.com (HELO nagoya.betaversion.org) (192.18.33.10) by daedalus.apache.org with SMTP; 19 Dec 2002 15:57:25 -0000 Received: (qmail 20634 invoked by uid 97); 19 Dec 2002 15:57:15 -0000 Delivered-To: qmlist-jakarta-archive-tomcat-dev@jakarta.apache.org Received: (qmail 20447 invoked by uid 97); 19 Dec 2002 15:57:12 -0000 Mailing-List: contact tomcat-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Tomcat Developers List" Reply-To: "Tomcat Developers List" Delivered-To: mailing list tomcat-dev@jakarta.apache.org Received: (qmail 20348 invoked by uid 97); 19 Dec 2002 15:57:12 -0000 X-Antivirus: nagoya (v4218 created Aug 14 2002) Date: 19 Dec 2002 15:55:46 -0000 Message-ID: <20021219155546.36978.qmail@icarus.apache.org> From: costin@apache.org To: jakarta-tomcat-connectors-cvs@apache.org Subject: cvs commit: jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net PoolTcpEndpoint.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N costin 2002/12/19 07:55:46 Modified: util/java/org/apache/tomcat/util/net PoolTcpEndpoint.java Log: Fix from Michael ( with strange email address ). Declare the "running" as volatile and some code cleanups. Revision Changes Path 1.10 +39 -44 jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net/PoolTcpEndpoint.java Index: PoolTcpEndpoint.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net/PoolTcpEndpoint.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- PoolTcpEndpoint.java 19 Dec 2002 05:31:46 -0000 1.9 +++ PoolTcpEndpoint.java 19 Dec 2002 15:55:45 -0000 1.10 @@ -120,7 +120,7 @@ private ServerSocket serverSocket; ThreadPoolRunnable listener; - private boolean running = false; + private volatile boolean running = false; private boolean initialized = false; static final int debug=0; @@ -338,40 +338,35 @@ // -------------------- Private methods Socket acceptSocket() { + if( !running || serverSocket==null ) return null; + Socket accepted = null; try { - if (running) { - if(null!= serverSocket) { - if(factory==null){ - accepted = serverSocket.accept(); - } - else { - accepted = factory.acceptSocket(serverSocket); - } - if(!running) { - if(null != accepted) { - accepted.close(); // rude, but unlikely! - accepted = null; - } - } - if( factory != null && accepted != null) - factory.initSocket( accepted ); - } - } - } - catch(InterruptedIOException iioe) { - // normal part -- should happen regularly so - // that the endpoint can release if the server - // is shutdown. - } - catch (IOException e) { - - if (running) { - - String msg = sm.getString("endpoint.err.nonfatal", - serverSocket, e); - log.error(msg, e); + if(factory==null) { + accepted = serverSocket.accept(); + } else { + accepted = factory.acceptSocket(serverSocket); + } + if(!running && (null != accepted)) { + accepted.close(); // rude, but unlikely! + accepted = null; + } + if( factory != null && accepted != null) + factory.initSocket( accepted ); + } + catch(InterruptedIOException iioe) { + // normal part -- should happen regularly so + // that the endpoint can release if the server + // is shutdown. + } + catch (IOException e) { + + if (running) { + + String msg = sm.getString("endpoint.err.nonfatal", + serverSocket, e); + log.error(msg, e); if (accepted != null) { try { @@ -379,7 +374,7 @@ accepted = null; } catch(Exception ex) { msg = sm.getString("endpoint.err.nonfatal", - accepted, ex); + accepted, ex); log.warn(msg, ex); } } @@ -389,7 +384,7 @@ serverSocket.close(); } catch(Exception ex) { msg = sm.getString("endpoint.err.nonfatal", - serverSocket, ex); + serverSocket, ex); log.warn(msg, ex); } serverSocket = null; @@ -397,14 +392,14 @@ if (inet == null) { serverSocket = factory.createSocket(port, backlog); } else { - serverSocket = - factory.createSocket(port, backlog, inet); + serverSocket = + factory.createSocket(port, backlog, inet); } if (serverTimeout >= 0) serverSocket.setSoTimeout(serverTimeout); } catch (Throwable t) { - msg = sm.getString("endpoint.err.fatal", - serverSocket, t); + msg = sm.getString("endpoint.err.fatal", + serverSocket, t); log.error(msg, t); stopEndpoint(); } @@ -412,9 +407,9 @@ } - } - - return accepted; + } + + return accepted; } /** @deprecated -- To unsubscribe, e-mail: For additional commands, e-mail: