[ 
https://issues.apache.org/jira/browse/XMLRPC-156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jochen Wiedmann resolved XMLRPC-156.
------------------------------------

       Resolution: Fixed
    Fix Version/s: 3.1.1
         Assignee: Jochen Wiedmann

Fixed by adding the XmlRpcErrorLogger. Create a subclass and set it on the 
XmlRpcStreamServer.


> XMLRPC is too agressive about logging exceptions
> ------------------------------------------------
>
>                 Key: XMLRPC-156
>                 URL: https://issues.apache.org/jira/browse/XMLRPC-156
>             Project: XML-RPC
>          Issue Type: Bug
>    Affects Versions: 3.1.1
>            Reporter: Alan Burlison
>            Assignee: Jochen Wiedmann
>             Fix For: 3.1.1
>
>
> XmlRpcStreamServer.java contains the following code in execute():
>                         try {
>                                 istream = getInputStream(pConfig, 
> pConnection);
>                                 XmlRpcRequest request = getRequest(pConfig, 
> istream);
>                                 result = execute(request);
>                                 istream.close();
>                                 istream = null;
>                                 error = null;
>                                 log.debug("execute: Request performed 
> successfully");
>                         } catch (Throwable t) {
>                                 log.error("execute: Error while performing 
> request", t);
>                                 result = null;
>                                 error = t;
>                         } finally {
>                                 if (istream != null) { try { istream.close(); 
> } catch (Throwable ignore) {} }
>                         }
> On initial inspection this looks reasonable, the problem is that if the 
> server calls a handler which throws an application-level exception which will 
> result in the XMLRPC <fault> response being returned to the client, it ends 
> up triggering the log.error() action.  This causes lots of spurious error 
> messages in logs - at an application level it may be necessary to throw 
> exceptions to trigger a <fault> response to the client, this doesn't mean 
> there is any sort of fault that XMLRPC should concern itself with.
> There should be different mechanisms for handling application-level 
> exceptions, which XMLRPC should propagate as <fault> responses and not 
> otherwise concern itself with, and true XMLRPC exceptions (e.g. no response 
> from remote end) which it should deal with.  At present there is no 
> distinction between these two types of error.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to