cxf-issues mailing list archives

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


Sergey Beryozkin commented on CXF-2086:


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());

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)
        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:
>             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.

View raw message