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 "Jochen Wiedmann (JIRA)" <xm...@ws.apache.org> on 2008/08/05 16:30:47 UTC

[jira] Resolved: (XMLRPC-156) XMLRPC is too agressive about logging exceptions

     [ 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.