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)