cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Kulp (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-3878) org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper does not print the WebApplicationException stack trace even when log level is set to FINEST
Date Tue, 25 Oct 2011 20:46:33 GMT

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

Daniel Kulp commented on CXF-3878:
----------------------------------

Actually, the printStackTrace stuff is kind of crappy as that would just print to stderr and
not into the logs at all.   I've done:

{code}
        Message msg = PhaseInterceptorChain.getCurrentMessage();
        FaultListener flogger = null;
        if (msg != null) {
            flogger = (FaultListener)PhaseInterceptorChain.getCurrentMessage()
                .getContextualProperty(FaultListener.class.getName());
        }
        if (flogger != null) {
            flogger.faultOccurred(ex, message, msg);
        } else if (LOG.isLoggable(Level.FINE)) {
            LOG.log(Level.FINE, message, ex);
        }
{code}

Which accomplishes two things:

1) If a FaultListener is registered (example: on the bus), the Exception will feed into there
and the listener can do whatever it wants.

2) Otherwise, log the full exception at FINE level.


                
> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper does not print the WebApplicationException
stack trace even when log level is set to FINEST
> ---------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-3878
>                 URL: https://issues.apache.org/jira/browse/CXF-3878
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 2.3.7, 2.4.3
>         Environment: Windows 7 64-bit, JDK 1.7.0
>            Reporter: Kartik Pandya
>            Priority: Minor
>              Labels: log
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> WebApplicationException occurring as a result of a JAXB mapping (an internal NullPointerException
caused it), never got printed on the console or in the logs.  The following message did get
printed:
>   WARNING WebApplicationException has been caught, cause: java.lang.NullPointerException
> But beyond this, no other information was available. Debugging revealed that the problem
was in JAXB mapping in one of my classes, but it would have been very helpful if the exception
trace is printed in the logs or on the console.
> The problem remained even after setting the log levels in logging.properties to FINEST.
 Other FINEST logs did get printed fine, except for the stack trace of the exception.  My
research showed that the setPrintStackTrace(boolean) method of WebApplicationExceptionMapper
never gets called from anywhere.  This will mean that the printStackTrace variable of the
class always remains false, resulting in eternal shadowing of the stack trace. 
> I made a small change to my local copy of org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper
Java file and patched it to cxf-2.4.3.jar to get the stack trace in my logs when log level
was set to INFO or lower.  The three line change is as below:
>     public Response toResponse(WebApplicationException ex) {
> +    	if(LOG.isLoggable(Level.INFO)) {
> +    		printStackTrace = true;
> +    	}
>     	...
> (lines with + are added lines)
> It would be great if you can make this change in subsequent versions.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message