Return-Path: Delivered-To: apmail-incubator-harmony-commits-archive@www.apache.org Received: (qmail 7968 invoked from network); 26 Sep 2006 08:50:22 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 26 Sep 2006 08:50:22 -0000 Received: (qmail 21723 invoked by uid 500); 26 Sep 2006 08:50:21 -0000 Delivered-To: apmail-incubator-harmony-commits-archive@incubator.apache.org Received: (qmail 21625 invoked by uid 500); 26 Sep 2006 08:50:21 -0000 Mailing-List: contact harmony-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: harmony-dev@incubator.apache.org Delivered-To: mailing list harmony-commits@incubator.apache.org Received: (qmail 21614 invoked by uid 99); 26 Sep 2006 08:50:21 -0000 Received: from idunn.apache.osuosl.org (HELO idunn.apache.osuosl.org) (140.211.166.84) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 26 Sep 2006 01:50:21 -0700 Authentication-Results: idunn.apache.osuosl.org smtp.mail=pyang@apache.org; spf=permerror X-ASF-Spam-Status: No, hits=-9.4 required=5.0 tests=ALL_TRUSTED,NO_REAL_NAME Received-SPF: error (idunn.apache.osuosl.org: domain apache.org from 140.211.166.113 cause and error) Received: from [140.211.166.113] ([140.211.166.113:57210] helo=eris.apache.org) by idunn.apache.osuosl.org (ecelerity 2.1.1.8 r(12930)) with ESMTP id EF/10-06617-CC9E8154 for ; Tue, 26 Sep 2006 01:50:21 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id E0E711A981D; Tue, 26 Sep 2006 01:50:18 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r449950 - in /incubator/harmony/enhanced/classlib/trunk/modules/logging/src: main/java/java/util/logging/ main/java/org/apache/harmony/logging/internal/nls/ test/java/org/apache/harmony/logging/tests/java/util/logging/ Date: Tue, 26 Sep 2006 08:50:18 -0000 To: harmony-commits@incubator.apache.org From: pyang@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20060926085018.E0E711A981D@eris.apache.org> X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: pyang Date: Tue Sep 26 01:50:17 2006 New Revision: 449950 URL: http://svn.apache.org/viewvc?view=rev&rev=449950 Log: LogManager should try context classloader to load config class if system classloader failed. Modified: incubator/harmony/enhanced/classlib/trunk/modules/logging/src/main/java/java/util/logging/LogManager.java incubator/harmony/enhanced/classlib/trunk/modules/logging/src/main/java/org/apache/harmony/logging/internal/nls/messages.properties incubator/harmony/enhanced/classlib/trunk/modules/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogManagerTest.java Modified: incubator/harmony/enhanced/classlib/trunk/modules/logging/src/main/java/java/util/logging/LogManager.java URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/logging/src/main/java/java/util/logging/LogManager.java?view=diff&rev=449950&r1=449949&r2=449950 ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/logging/src/main/java/java/util/logging/LogManager.java (original) +++ incubator/harmony/enhanced/classlib/trunk/modules/logging/src/main/java/java/util/logging/LogManager.java Tue Sep 26 01:50:17 2006 @@ -397,7 +397,16 @@ className); return clazz.newInstance(); } catch (Exception e) { - return null; + try { + Class clazz = Thread.currentThread().getContextClassLoader().loadClass( + className); + return clazz.newInstance(); + } catch (Exception innerE) { + //logging.20=Logging configuration class "{0}" failed + System.err.println(Messages.getString("logging.20", className)); + System.err.println(innerE); + return null; + } } } @@ -411,8 +420,7 @@ String configClassName = System.getProperty("java.util.logging.config.class"); //$NON-NLS-1$ if (null != configClassName) { if (null == getInstanceByClass(configClassName)) { - throw new RuntimeException("Cannot instantiate " //$NON-NLS-1$ - + configClassName); + return; } needInit = false; } Modified: incubator/harmony/enhanced/classlib/trunk/modules/logging/src/main/java/org/apache/harmony/logging/internal/nls/messages.properties URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/logging/src/main/java/org/apache/harmony/logging/internal/nls/messages.properties?view=diff&rev=449950&r1=449949&r2=449950 ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/logging/src/main/java/org/apache/harmony/logging/internal/nls/messages.properties (original) +++ incubator/harmony/enhanced/classlib/trunk/modules/logging/src/main/java/org/apache/harmony/logging/internal/nls/messages.properties Tue Sep 26 01:50:17 2006 @@ -33,6 +33,7 @@ logging.1E=Error message - {0} logging.1F=Exception - {0} logging.2=The OutputStream parameter is null +logging.20=Logging configuration class "{0}" failed logging.3=The Formatter parameter is null. logging.4=The 'level' parameter is null. logging.5=Different version - {0}.{1} Modified: incubator/harmony/enhanced/classlib/trunk/modules/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogManagerTest.java URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogManagerTest.java?view=diff&rev=449950&r1=449949&r2=449950 ============================================================================== --- incubator/harmony/enhanced/classlib/trunk/modules/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogManagerTest.java (original) +++ incubator/harmony/enhanced/classlib/trunk/modules/logging/src/test/java/org/apache/harmony/logging/tests/java/util/logging/LogManagerTest.java Tue Sep 26 01:50:17 2006 @@ -1038,5 +1038,27 @@ super.checkPermission(permission); } } - + + /* + * Test config class loading + * java -Djava.util.logging.config.class=badConfigClassName ClassLoadingTest + */ + public static class ClassLoadingTest{ + public static void main(String[] args) { + Thread.currentThread().setContextClassLoader(new MockErrorClassLoader()); + try{ + LogManager.getLogManager(); + fail("Should throw mock error"); + }catch(MockError e){ + } + } + static class MockErrorClassLoader extends ClassLoader{ + public Class loadClass(String name){ + throw new MockError(); + } + } + static class MockError extends Error{ + } + } + }