Re: org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext throws NPE

Gary Gregory <[email protected]>
Newsgroups gmane.comp.jakarta.log4j.user
Message-ID <CACZkXPw-Cd0QvhR4C2CDJjX8UNM6OvEwXzi0UJ79-Vfow8bDMg@mail.gmail.com>
Hi,

What happens if you use 2.14.0?

Gary

On Wed, Nov 24, 2021, 07:51 Tenghuan He <[email protected]> wrote:

> 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.
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.