commited, thanks
2005/11/1, [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
> Hi,
>
> We ran into an issue were our client application using XMLRpcClientLite
> hangs if the maximum number of concurrent requests on the server is
> exceeded, i.e. runners.activeCount() > XmlRpc.getMaxThreads(). I found
> that a socket is not closed in those circumstances and therefore the
> client keeps waiting for the response. The proposed patch below would
> take care of this issue.
>
> Thanks,
> Elias Zaretsky.
>
>
> Index: WebServer.java
> ===================================================================
> RCS file:
> /home/cvspublic/ws-xmlrpc/src/java/org/apache/xmlrpc/WebServer.java,v
> retrieving revision 1.28
> diff -u -r1.28 WebServer.java
> --- WebServer.java 22 Apr 2005 10:25:57 -0000 1.28
> +++ WebServer.java 31 Oct 2005 22:48:56 -0000
> @@ -445,9 +445,11 @@
> {
> while (listener != null)
> {
> + Socket socket = null;
> + Runner runner = null;
> try
> {
> - Socket socket = serverSocket.accept();
> + socket = serverSocket.accept();
> try
> {
> socket.setTcpNoDelay(true);
> @@ -459,7 +461,7 @@
>
> if (allowConnection(socket))
> {
> - Runner runner = getRunner();
> + runner = getRunner();
> runner.handle(socket);
> }
> else
> @@ -487,6 +489,19 @@
> + err + ").");
> err.printStackTrace();
> }
> + finally
> + {
> + if (runner == null && socket != null)
> + {
> + try
> + {
> + socket.close();
> + }
> + catch (Throwable e)
> + {
> + }
> + }
> + }
> }
> }
> catch (Exception exception)
>