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: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>