You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sk...@apache.org on 2005/05/10 02:47:03 UTC
svn commit: r169388 - in
/jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging:
NullClassLoaderTest.java TestAll.java
Author: skitching
Date: Mon May 9 17:47:03 2005
New Revision: 169388
URL: http://svn.apache.org/viewcvs?rev=169388&view=rev
Log:
Add test case for situation where context classloader is null.
Added:
jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/NullClassLoaderTest.java (with props)
Modified:
jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/TestAll.java
Added: jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/NullClassLoaderTest.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/NullClassLoaderTest.java?rev=169388&view=auto
==============================================================================
--- jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/NullClassLoaderTest.java (added)
+++ jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/NullClassLoaderTest.java Mon May 9 17:47:03 2005
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.logging;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Test cases for situations where getClassLoader or getContextClassLoader
+ * return null. This can happen when using JDK 1.1. It can also happen when
+ * JCL is deployed via the bootclassloader - something that could be done when
+ * using java in embedded systems.
+ */
+public class NullClassLoaderTest extends TestCase{
+
+ //---------------------- Main ---------------------------------
+
+ /**
+ * Main method so this test case can be run direct from the command line.
+ */
+ public static void main(String[] args){
+ String[] testCaseName = { NullClassLoaderTest.class.getName() };
+ junit.textui.TestRunner.main(testCaseName);
+ }
+
+ //---------------------- Constructors ---------------------------------
+
+ /** Creates a new instance of LoadTest */
+ public NullClassLoaderTest(String testName) {
+ super(testName);
+ }
+
+ //---------------------- JUnit methods ---------------------------------
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite();
+ suite.addTestSuite(NullClassLoaderTest.class);
+ return suite;
+ }
+
+ //---------------------- unit tests ---------------------------------
+
+ /**
+ * This tests that when getContextClassLoader returns null, the
+ * LogFactory.getLog(name) method still correctly returns the same
+ * log object when called multiple times with the same name.
+ */
+ public void testSameLogObject() throws Exception {
+ ClassLoader oldContextClassLoader = Thread.currentThread().getContextClassLoader();
+ try {
+ // emulate an app (not a webapp) running code loaded via the
+ // "null" classloader (bootclassloader for JDK1.2+, or
+ // systemclassloader for jdk1.1).
+ Thread.currentThread().setContextClassLoader(null);
+
+ Log log1 = LogFactory.getLog("foo");
+ Log log2 = LogFactory.getLog("foo");
+
+ assertSame(
+ "Calling getLog twice with the same category " +
+ "resulted in different objects!",
+ log1, log2);
+ } finally {
+ Thread.currentThread().setContextClassLoader(oldContextClassLoader);
+ }
+ }
+}
Propchange: jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/NullClassLoaderTest.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/TestAll.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/TestAll.java?rev=169388&r1=169387&r2=169388&view=diff
==============================================================================
--- jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/TestAll.java (original)
+++ jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/TestAll.java Mon May 9 17:47:03 2005
@@ -44,6 +44,7 @@
suite.addTest(SimpleLogTest.suite());
suite.addTest(NoOpLogTest.suite());
suite.addTest(LogTest.suite());
+ suite.addTest(NullClassLoaderTest.suite());
return suite;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org