You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@logging.apache.org by Gaurav <ga...@gmail.com> on 2019/05/24 17:34:43 UTC

NullPointerException in DefaultMergeStrategy

Hi,

Getting NullPointerException in DefaultMergeStrategy class.

codeblock - 
"if (targetNode.getAttributes().get(NAME).equals(node.getAttributes().get(NAME))) "

Probable suspect is that I've developed an appender similar to failoverappender and it does not contain any child nodes.
e.g.

<TestRollingFileAppender name="testRollingFileAppender" targetAppenderName="rollingFileAppender" ignoreExceptions="false">
</TestRollingFileAppender>

Stacktrace - 

Exception in thread "Log4j2-TF-28-ConfiguratonFileWatcher-16" java.lang.NullPointerException
        at org.apache.logging.log4j.core.config.composite.DefaultMergeStrategy.mergConfigurations(DefaultMergeStrategy.java:139)
        at org.apache.logging.log4j.core.config.composite.CompositeConfiguration.setup(CompositeConfiguration.java:122)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:235)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:249)
        at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:545)
        at org.apache.logging.log4j.core.LoggerContext.onChange(LoggerContext.java:667)
        at org.apache.logging.log4j.core.config.ConfiguratonFileWatcher$ReconfigurationRunnable.run(ConfiguratonFileWatcher.java:68)
        at java.lang.Thread.run(Thread.java:748)

Please assist.

Re: NullPointerException in DefaultMergeStrategy

Posted by Gaurav <ga...@gmail.com>.

On 2019/05/27 12:21:38, Gary Gregory <ga...@gmail.com> wrote: 
> Ralph, why not add null-checks in the loops of the merge methods?
> 
> Gary
> 
> On Mon, May 27, 2019 at 4:28 AM Gaurav <ga...@gmail.com> wrote:
> 
> >
> >
> > On 2019/05/24 19:16:33, Ralph Goers <ra...@dslextreme.com> wrote:
> > > Composite configuration implies that you are merging multiple
> > configuration files. Yes, it would appear that the configuration being
> > merged has one node with no configuration under it.
> > >
> > > If you only have a single configuration this shouldn’t happen.
> > >
> > > Ralph
> > >
> > > > On May 24, 2019, at 10:34 AM, Gaurav <ga...@gmail.com> wrote:
> > > >
> > > > Hi,
> > > >
> > > > Getting NullPointerException in DefaultMergeStrategy class.
> > > >
> > > > codeblock -
> > > > "if
> > (targetNode.getAttributes().get(NAME).equals(node.getAttributes().get(NAME)))
> > "
> > > >
> > > > Probable suspect is that I've developed an appender similar to
> > failoverappender and it does not contain any child nodes.
> > > > e.g.
> > > >
> > > > <TestRollingFileAppender name="testRollingFileAppender"
> > targetAppenderName="rollingFileAppender" ignoreExceptions="false">
> > > > </TestRollingFileAppender>
> > > >
> > > > Stacktrace -
> > > >
> > > > Exception in thread "Log4j2-TF-28-ConfiguratonFileWatcher-16"
> > java.lang.NullPointerException
> > > >        at
> > org.apache.logging.log4j.core.config.composite.DefaultMergeStrategy.mergConfigurations(DefaultMergeStrategy.java:139)
> > > >        at
> > org.apache.logging.log4j.core.config.composite.CompositeConfiguration.setup(CompositeConfiguration.java:122)
> > > >        at
> > org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:235)
> > > >        at
> > org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:249)
> > > >        at
> > org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:545)
> > > >        at
> > org.apache.logging.log4j.core.LoggerContext.onChange(LoggerContext.java:667)
> > > >        at
> > org.apache.logging.log4j.core.config.ConfiguratonFileWatcher$ReconfigurationRunnable.run(ConfiguratonFileWatcher.java:68)
> > > >        at java.lang.Thread.run(Thread.java:748)
> > > >
> > > > Please assist.
> > > >
> > >
> > >
> > >
> > So, is there any way to fix this or should I ignore the nullpointer
> > exception?
> >
> 
Hi Ralph/Gary,

The issue seems to get resolved on log4j 2.11. I just upgraded from log4j 2.9 to 2.11 and it works flawlessly.

Re: NullPointerException in DefaultMergeStrategy

Posted by Gary Gregory <ga...@gmail.com>.
Ralph, why not add null-checks in the loops of the merge methods?

Gary

On Mon, May 27, 2019 at 4:28 AM Gaurav <ga...@gmail.com> wrote:

>
>
> On 2019/05/24 19:16:33, Ralph Goers <ra...@dslextreme.com> wrote:
> > Composite configuration implies that you are merging multiple
> configuration files. Yes, it would appear that the configuration being
> merged has one node with no configuration under it.
> >
> > If you only have a single configuration this shouldn’t happen.
> >
> > Ralph
> >
> > > On May 24, 2019, at 10:34 AM, Gaurav <ga...@gmail.com> wrote:
> > >
> > > Hi,
> > >
> > > Getting NullPointerException in DefaultMergeStrategy class.
> > >
> > > codeblock -
> > > "if
> (targetNode.getAttributes().get(NAME).equals(node.getAttributes().get(NAME)))
> "
> > >
> > > Probable suspect is that I've developed an appender similar to
> failoverappender and it does not contain any child nodes.
> > > e.g.
> > >
> > > <TestRollingFileAppender name="testRollingFileAppender"
> targetAppenderName="rollingFileAppender" ignoreExceptions="false">
> > > </TestRollingFileAppender>
> > >
> > > Stacktrace -
> > >
> > > Exception in thread "Log4j2-TF-28-ConfiguratonFileWatcher-16"
> java.lang.NullPointerException
> > >        at
> org.apache.logging.log4j.core.config.composite.DefaultMergeStrategy.mergConfigurations(DefaultMergeStrategy.java:139)
> > >        at
> org.apache.logging.log4j.core.config.composite.CompositeConfiguration.setup(CompositeConfiguration.java:122)
> > >        at
> org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:235)
> > >        at
> org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:249)
> > >        at
> org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:545)
> > >        at
> org.apache.logging.log4j.core.LoggerContext.onChange(LoggerContext.java:667)
> > >        at
> org.apache.logging.log4j.core.config.ConfiguratonFileWatcher$ReconfigurationRunnable.run(ConfiguratonFileWatcher.java:68)
> > >        at java.lang.Thread.run(Thread.java:748)
> > >
> > > Please assist.
> > >
> >
> >
> >
> So, is there any way to fix this or should I ignore the nullpointer
> exception?
>

Re: NullPointerException in DefaultMergeStrategy

Posted by Gaurav <ga...@gmail.com>.

On 2019/05/24 19:16:33, Ralph Goers <ra...@dslextreme.com> wrote: 
> Composite configuration implies that you are merging multiple configuration files. Yes, it would appear that the configuration being merged has one node with no configuration under it. 
> 
> If you only have a single configuration this shouldn’t happen.
> 
> Ralph
> 
> > On May 24, 2019, at 10:34 AM, Gaurav <ga...@gmail.com> wrote:
> > 
> > Hi,
> > 
> > Getting NullPointerException in DefaultMergeStrategy class.
> > 
> > codeblock - 
> > "if (targetNode.getAttributes().get(NAME).equals(node.getAttributes().get(NAME))) "
> > 
> > Probable suspect is that I've developed an appender similar to failoverappender and it does not contain any child nodes.
> > e.g.
> > 
> > <TestRollingFileAppender name="testRollingFileAppender" targetAppenderName="rollingFileAppender" ignoreExceptions="false">
> > </TestRollingFileAppender>
> > 
> > Stacktrace - 
> > 
> > Exception in thread "Log4j2-TF-28-ConfiguratonFileWatcher-16" java.lang.NullPointerException
> >        at org.apache.logging.log4j.core.config.composite.DefaultMergeStrategy.mergConfigurations(DefaultMergeStrategy.java:139)
> >        at org.apache.logging.log4j.core.config.composite.CompositeConfiguration.setup(CompositeConfiguration.java:122)
> >        at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:235)
> >        at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:249)
> >        at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:545)
> >        at org.apache.logging.log4j.core.LoggerContext.onChange(LoggerContext.java:667)
> >        at org.apache.logging.log4j.core.config.ConfiguratonFileWatcher$ReconfigurationRunnable.run(ConfiguratonFileWatcher.java:68)
> >        at java.lang.Thread.run(Thread.java:748)
> > 
> > Please assist.
> > 
> 
> 
> 
So, is there any way to fix this or should I ignore the nullpointer exception?

Re: NullPointerException in DefaultMergeStrategy

Posted by Ralph Goers <ra...@dslextreme.com>.
Composite configuration implies that you are merging multiple configuration files. Yes, it would appear that the configuration being merged has one node with no configuration under it. 

If you only have a single configuration this shouldn’t happen.

Ralph

> On May 24, 2019, at 10:34 AM, Gaurav <ga...@gmail.com> wrote:
> 
> Hi,
> 
> Getting NullPointerException in DefaultMergeStrategy class.
> 
> codeblock - 
> "if (targetNode.getAttributes().get(NAME).equals(node.getAttributes().get(NAME))) "
> 
> Probable suspect is that I've developed an appender similar to failoverappender and it does not contain any child nodes.
> e.g.
> 
> <TestRollingFileAppender name="testRollingFileAppender" targetAppenderName="rollingFileAppender" ignoreExceptions="false">
> </TestRollingFileAppender>
> 
> Stacktrace - 
> 
> Exception in thread "Log4j2-TF-28-ConfiguratonFileWatcher-16" java.lang.NullPointerException
>        at org.apache.logging.log4j.core.config.composite.DefaultMergeStrategy.mergConfigurations(DefaultMergeStrategy.java:139)
>        at org.apache.logging.log4j.core.config.composite.CompositeConfiguration.setup(CompositeConfiguration.java:122)
>        at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:235)
>        at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:249)
>        at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:545)
>        at org.apache.logging.log4j.core.LoggerContext.onChange(LoggerContext.java:667)
>        at org.apache.logging.log4j.core.config.ConfiguratonFileWatcher$ReconfigurationRunnable.run(ConfiguratonFileWatcher.java:68)
>        at java.lang.Thread.run(Thread.java:748)
> 
> Please assist.
>