Hi, log4j community. Our application failed to start up due to the following error
Caused by: java.lang.NullPointerException at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:144) ~[log4j-core-2.5.jar:2.5] at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:41) ~[log4j-core-2.5.jar:2.5] at org.apache.logging.log4j.LogManager.getContext(LogManager.java:182) ~[log4j-api-2.5.jar:2.5] at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:103) ~[log4j-api-2.5.jar:2.5] at org.apache.logging.log4j.jul.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:34) ~[log4j-jul-2.5.jar:2.5] at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42) ~[log4j-api-2.5.jar:2.5] at org.apache.logging.log4j.jul.LogManager.getLogger(LogManager.java:89) ~[log4j-jul-2.5.jar:2.5] at java.util.logging.LogManager.demandLogger(LogManager.java:551) ~[?:1.8.0_171] at java.util.logging.Logger.demandLogger(Logger.java:455) ~[?:1.8.0_171] at java.util.logging.Logger.getLogger(Logger.java:502) ~[?:1.8.0_171] at com.google.inject.internal.util.Stopwatch.<clinit>(Stopwatch.java:27) ~[guice-4.1.0.jar:?] ... 18 more We are using log4j-2.5, line#140 in the code snippet below `ctx` is returned as `null`, line#144 throws out the NPE. Diving into selector implementation, it seems that all kinds of selectors are trying to ensure no-null value is returned, so how could this happen? 137 @Override 138 public LoggerContext getContext(final String fqcn, final ClassLoader loader, final Object externalContext, 139 final boolean currentContext) { 140 final LoggerContext ctx = selector.getContext(fqcn, loader, currentContext); 141 if (externalContext != null && ctx.getExternalContext() == null) { 142 ctx.setExternalContext(externalContext); 143 } 144 if (ctx.getState() == LifeCycle.State.INITIALIZED) { 145 ctx.start(); 146 } 147 return ctx; 148 } Could anyone help? Thanks % Best Regards.