You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlrpc-auto@ws.apache.org by dl...@apache.org on 2006/12/04 23:13:46 UTC

svn commit: r482388 - /webservices/xmlrpc/branches/XMLRPC_1_2_BRANCH/src/java/org/apache/xmlrpc/WebServer.java

Author: dlr
Date: Mon Dec  4 14:13:45 2006
New Revision: 482388

URL: http://svn.apache.org/viewvc?view=rev&rev=482388
Log:
Backport r345466 from the XMLRPC_2_0_BRANCH to the XMLRPC_1_2_BRANCH,
improving the socket handling error mode.

* src/java/org/apache/xmlrpc/WebServer.java
  (run): Close the client socket if something goes wrong during
   processing.

Modified:
    webservices/xmlrpc/branches/XMLRPC_1_2_BRANCH/src/java/org/apache/xmlrpc/WebServer.java

Modified: webservices/xmlrpc/branches/XMLRPC_1_2_BRANCH/src/java/org/apache/xmlrpc/WebServer.java
URL: http://svn.apache.org/viewvc/webservices/xmlrpc/branches/XMLRPC_1_2_BRANCH/src/java/org/apache/xmlrpc/WebServer.java?view=diff&rev=482388&r1=482387&r2=482388
==============================================================================
--- webservices/xmlrpc/branches/XMLRPC_1_2_BRANCH/src/java/org/apache/xmlrpc/WebServer.java (original)
+++ webservices/xmlrpc/branches/XMLRPC_1_2_BRANCH/src/java/org/apache/xmlrpc/WebServer.java Mon Dec  4 14:13:45 2006
@@ -4,7 +4,7 @@
  * The Apache Software License, Version 1.1
  *
  *
- * Copyright (c) 2001 The Apache Software Foundation.  All rights
+ * Copyright (c) 2001-2006 The Apache Software Foundation.  All rights
  * reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -482,9 +482,12 @@
         {
             while (listener != null)
             {
+                Socket socket = null;
+                Runner runner = null;
+                
                 try
                 {
-                    Socket socket = serverSocket.accept();
+                    socket = serverSocket.accept();
                     try
                     {
                         socket.setTcpNoDelay(true);
@@ -496,7 +499,7 @@
 
                     if (allowConnection(socket))
                     {
-                        Runner runner = getRunner();
+                        runner = getRunner();
                         runner.handle(socket);
                     }
                     else
@@ -524,6 +527,19 @@
                             + err + ").");
                     err.printStackTrace();
                 }
+                finally
+                {
+                    if (runner == null && socket != null)
+                    {
+	                    try
+	                    {
+	                        socket.close();
+	                    }
+	                    catch (Throwable e)
+	                    {
+	                    }
+                    }
+               }
             }
         }
         catch (Exception exception)