cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Beryozkin (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CXF-2086) CFX does not log caught RuntimeException
Date Wed, 04 Mar 2009 16:57:56 GMT

    [ https://issues.apache.org/jira/browse/CXF-2086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12678786#action_12678786
] 

Sergey Beryozkin commented on CXF-2086:
---------------------------------------

Hi,

default WebApplicationExceptionMapper logs at a fine level, as a given WebApplicationException
might be a part of the application flow :

if (LOG.isLoggable(Level.FINE)) {
            org.apache.cxf.common.i18n.Message errorMsg = 
                new org.apache.cxf.common.i18n.Message("WEB_APP_EXCEPTION", 
                    BUNDLE, ex.getCause() == null ? ex.getMessage() : ex.getCause().getMessage());
            LOG.fine(errorMsg.toString());
        }

When JAXBException occurs here's what happens first :

protected static void handleJAXBException(JAXBException e) {
        Throwable t = e.getLinkedException() != null 
            ? e.getLinkedException() : e.getCause() != null ? e.getCause() : e;
        String message = new org.apache.cxf.common.i18n.Message("JAXB_EXCEPTION", 
                             BUNDLE, t.getMessage()).toString();
        Response r = Response.status(Response.Status.INTERNAL_SERVER_ERROR)
            .type(MediaType.TEXT_PLAIN).entity(message).build();
        throw new WebApplicationException(t, r);
    }

so this WebApplicationException will be handled by a mapper.

You can add a custom WebApplicationException mapper which would analyze the  cause and do
the right logging.

That said I think I was wrong in enabling the fine-level logging in this case - after all
WebApplicationException  is a RuntimeException. Will change it to 'warning'

> I would also request that you review your error handling in general and determine if
appropriate logging is in place. 

sure, we'll improve the logging


> CFX does not log caught RuntimeException
> ----------------------------------------
>
>                 Key: CXF-2086
>                 URL: https://issues.apache.org/jira/browse/CXF-2086
>             Project: CXF
>          Issue Type: Improvement
>          Components: REST
>    Affects Versions: 2.1.4
>         Environment: Java 6 and Windows 7
>            Reporter: Matt Helgren
>             Fix For: 2.1.5
>
>
> We are using CXF and the JAXRS component to build our next generation application based
on REST services.  Recently we have a very hard time debugging REST requests that fail with
a 500 response.  We find that the failures are due to our own issues with JAXB marsharlling
but it is very hard to discover because JAXRS and CXF do not report/log the exceptions caught
from JAXB.
> JAXB errors seem to be caught by the framework in JAXRSInIntercepter.handleMessage().
  Please add some logging to the catch block.  Right now all it does is create a fault response
for the client that has very little information about the actual root cause.
> This may seem like a small change but it would help us immensely in our development process
with CXF.
> I would also request that you review your error handling in general and determine if
appropriate logging is in place. 

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


Mime
View raw message