You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Matt Helgren (JIRA)" <ji...@apache.org> on 2009/03/04 17:27:56 UTC

[jira] Created: (CXF-2086) CFX does not log caught RuntimeException

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.


[jira] Resolved: (CXF-2086) CFX does not log caught RuntimeException

Posted by "Sergey Beryozkin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-2086?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sergey Beryozkin resolved CXF-2086.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 2.2

I believe it's been fixed now - and the error message if any will be reported back to a client. Whatever has been fixed will probably won't close the issue of logging in general, and we'll continue improving it, but I reckon this issue can be closed now. Note, I'll do a backmerge into 2.1.5 after 2.2 gets released

Feel free to reopen if you find some other weak spots, thanks

> 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.2, 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.


[jira] Commented: (CXF-2086) CFX does not log caught RuntimeException

Posted by "Sergey Beryozkin (JIRA)" <ji...@apache.org>.
    [ 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.