commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Malcolm Cleaton (JIRA)" <j...@apache.org>
Subject [jira] Commented: (LOGGING-114) Silent Swallowing of NoClassDefFoundError
Date Fri, 03 Aug 2007 08:29:52 GMT

    [ https://issues.apache.org/jira/browse/LOGGING-114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12517486
] 

Malcolm Cleaton commented on LOGGING-114:
-----------------------------------------

No, the case of an appender which does not exist is handled differently by log4j. It has to
be an appender which exists but causes an Error when created, the most common of which is
a NoClassDefFoundError when dependent classes are missing. However, any error will do, so
an alternative way to test would be to create a trivial appender which raises an error whenever
instantiated.

Yes, if you just want to check that JCL is writing an appropriate error when log4j configuration
fails, there's no need to exercise log4j to test this, obviously. Exercising log4j directly
is only necessary if you want to reproduce the original problem.

> Silent Swallowing of NoClassDefFoundError
> -----------------------------------------
>
>                 Key: LOGGING-114
>                 URL: https://issues.apache.org/jira/browse/LOGGING-114
>             Project: Commons Logging
>          Issue Type: Bug
>    Affects Versions: 1.1.0
>         Environment: Various OSs, in combination with log4j 1.2.14.
>            Reporter: Malcolm Cleaton
>            Priority: Minor
>
> Hi. I'm using commons logging with log4j; my team ship a library which uses log4j, and
some of our clients use it with commons-logging.
> If commons-logging is in its default configuration, and log4j is present but fails to
load its configuration with an unhandled exception, the results are pretty nasty:
> - commons-logging silently swallows the exception and logs with something else. If diagnostics
are turned on, the message is:
>     Could not instantiate Log 'org.apache.commons.logging.impl.Log4JLogger' -- java.lang.reflect.InvocationTargetException:
null
> - future attempts to use log4j directly get a pretty unhelpful error:
>     java.lang.NoClassDefFoundError at org.apache.log4j.Logger.getLogger(Logger.java:117).
> I realise you're trying to deal with a very large number of cases in this code, but it
does seem like something better could be done here. If nothing else is possible, at least
recognising the InvocationTargetException and pulling out the target exception for the diagnostic
log would have helped with tracking this one down.

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