Author: skitching
Date: Sun Nov 19 00:50:31 2006
New Revision: 476772

URL: http://svn.apache.org/viewvc?view=rev&rev=476772
Log:
Improve diagnostics when underlying lib throws InvocationTargetException.
Patch provided by Lilliane E. Blaze. See Jira issue LOGGING-111.

Modified:
    
jakarta/commons/proper/logging/trunk/src/java/org/apache/commons/logging/impl/LogFactoryImpl.java

Modified: 
jakarta/commons/proper/logging/trunk/src/java/org/apache/commons/logging/impl/LogFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/logging/trunk/src/java/org/apache/commons/logging/impl/LogFactoryImpl.java?view=diff&rev=476772&r1=476771&r2=476772
==============================================================================
--- 
jakarta/commons/proper/logging/trunk/src/java/org/apache/commons/logging/impl/LogFactoryImpl.java
 (original)
+++ 
jakarta/commons/proper/logging/trunk/src/java/org/apache/commons/logging/impl/LogFactoryImpl.java
 Sun Nov 19 00:50:31 2006
@@ -908,7 +908,7 @@
         if (isDiagnosticsEnabled()) {
             logDiagnostic(
                 "No user-specified Log implementation; performing discovery" +
-               " using the standard supported logging implementations...");
+                " using the standard supported logging implementations...");
         }
         for(int i=0; (i<classesToDiscover.length) && (result == null); ++i) {
             result = createLogFromClass(classesToDiscover[i], logCategory, 
true);
@@ -1362,6 +1362,29 @@
                       + logAdapterClassName + "' -- "
                       + discoveryFlaw.getClass().getName() + ": "
                       + discoveryFlaw.getLocalizedMessage());       
+
+            if (discoveryFlaw instanceof InvocationTargetException ) {
+               // Ok, the lib is there but while trying to create a real 
underlying
+               // logger something failed in the underlying lib; display info 
about
+               // that if possible.
+                InvocationTargetException ite = 
(InvocationTargetException)discoveryFlaw;
+                Throwable cause = ite.getTargetException();
+                if (cause != null) {
+                    logDiagnostic("... InvocationTargetException: " +
+                        cause.getClass().getName() + ": " +
+                        cause.getLocalizedMessage());
+
+                    if (cause instanceof ExceptionInInitializerError) {
+                        ExceptionInInitializerError eiie = 
(ExceptionInInitializerError)cause;
+                        Throwable cause2 = eiie.getException();
+                        if (cause2 != null) {
+                            logDiagnostic("... ExceptionInInitializerError: " +
+                                cause2.getClass().getName() + ": " +
+                                cause2.getLocalizedMessage());
+                        }
+                    }
+                }
+            }
         }
         
         if (!allowFlawedDiscovery) {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to