Skip to content

Commit 65619bb

Browse files
committed
fix #715 prevent NullPointerException with bootstrap classloader
1 parent c428711 commit 65619bb

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

logback-classic/src/main/java/ch/qos/logback/classic/util/ContextInitializer.java

+4
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,10 @@ public void autoConfig(ClassLoader classLoader) throws JoranException {
100100
}
101101

102102
private Configurator instantiateConfiguratorByClassName(String configuratorClassName, ClassLoader classLoader) {
103+
if (classLoader == null) {
104+
contextAware.addInfo("Instantiation failure: null ClassLoader");
105+
return null;
106+
}
103107
try {
104108
Class<?> classObj = classLoader.loadClass(configuratorClassName);
105109
return (Configurator) classObj.getConstructor().newInstance();

logback-classic/src/test/java/ch/qos/logback/classic/util/ContextInitializerTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,13 @@ public void autoConfigFromServiceLoaderJDK6andAbove() throws Exception {
122122
assertSame(loggerContext, MockConfigurator.context);
123123
}
124124

125+
@Test
126+
public void autoConfigFromBootstrapClassLoader() throws Exception {
127+
assertNull(MockConfigurator.context);
128+
new ContextInitializer(loggerContext).autoConfig(null);
129+
assertNull(MockConfigurator.context);
130+
}
131+
125132
@Test
126133
public void autoConfigFromServiceLoaderJDK5() throws Exception {
127134
assumeTrue(isJDK5());

0 commit comments

Comments
 (0)