Author: samisa
Date: Sat Dec 18 04:40:57 2010
New Revision: 1050588
URL: http://svn.apache.org/viewvc?rev=1050588&view=rev
Log:
Applied patch to fix problem of Http connection listener terminating when
request executor full - AXIS2-4800
Modified:
axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/server/DefaultConnectionListener.java
Modified:
axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/server/DefaultConnectionListener.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/server/DefaultConnectionListener.java?rev=1050588&r1=1050587&r2=1050588&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/server/DefaultConnectionListener.java
(original)
+++
axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/server/DefaultConnectionListener.java
Sat Dec 18 04:40:57 2010
@@ -26,6 +26,11 @@ import org.apache.http.params.HttpParams
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
+import java.util.concurrent.RejectedExecutionException;
+import org.apache.http.HttpStatus;
+import org.apache.http.HttpVersion;
+import org.apache.http.impl.DefaultHttpResponseFactory;
+import org.apache.http.protocol.BasicHttpContext;
public class DefaultConnectionListener implements IOProcessor {
@@ -82,9 +87,14 @@ public class DefaultConnectionListener i
socket.getRemoteSocketAddress());
}
AxisHttpConnection conn = new
AxisHttpConnectionImpl(socket, this.params);
- this.connmanager.process(conn);
+ try {
+ this.connmanager.process(conn);
+ } catch (RejectedExecutionException e) {
+ conn.sendResponse(new
DefaultHttpResponseFactory().newHttpResponse(
+ HttpVersion.HTTP_1_0,
HttpStatus.SC_SERVICE_UNAVAILABLE, new BasicHttpContext(null)));
+ }
} catch(java.io.InterruptedIOException ie) {
- break;
+ break;
} catch (Throwable ex) {
if (Thread.interrupted()) {
break;