You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by Ralph Goers <ra...@dslextreme.com> on 2014/10/19 04:33:37 UTC
Unit test failure
So I fixed the compilation errors. Now I get an error in one of the unit tests. I will have to look into this.
Results :
Tests in error:
ShutdownCallbackRegistryTest.testShutdownCallbackRegistry:53 ? ConcurrentModification
Tests run: 743, Failures: 0, Errors: 1, Skipped: 29
Ralph
Re: Unit test failure
Posted by Ralph Goers <ra...@dslextreme.com>.
I have been able to do a build and build the site. I am not doing a build with -P apache-release to verify it builds the distribution properly. Once that is successful I will start the release.
Ralph
> On Oct 19, 2014, at 2:53 PM, Remko Popma <re...@gmail.com> wrote:
>
> Nice!
>
> Sent from my iPhone
>
> On 2014/10/20, at 4:41, Ralph Goers <rgoers@apache.org <ma...@apache.org>> wrote:
>
>> The fix was actually simpler. I just moved the unregistering of MBeans to the first thing during shutdown of the LoggerContext. That way it is still valid should the JDK try to log.
>>
>> Ralph
>>
>>> On Oct 18, 2014, at 11:05 PM, Ralph Goers <rgoers@apache.org <ma...@apache.org>> wrote:
>>>
>>> Actually, we probably need a dummy contact factory on shutdown. It is getting late and I am going to bed. I'm not sure how much time I will spend on this tomorrow.
>>>
>>> Sent from my iPad
>>>
>>> On Oct 18, 2014, at 10:57 PM, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
>>>
>>>> Yeah, that probably makes the most sense.
>>>>
>>>> Ralph
>>>>
>>>>> On Oct 18, 2014, at 10:51 PM, Remko Popma <remko.popma@gmail.com <ma...@gmail.com>> wrote:
>>>>>
>>>>> Shooting from the hip: is it an idea to create/register a dummy context on shutdown, to prevent a real one from being created? (I have not looked at the code; no idea if this would work in practice.)
>>>>>
>>>>> Sent from my iPhone
>>>>>
>>>>> On 2014/10/19, at 14:44, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
>>>>>
>>>>>> The LoggerContext has stopped. We then try to unregister MBeans. This calls java.util.logging, which in turn creates a new LoggerContext. It seems to me that we should be preventing this but it isn’t quire clear to me yet how.
>>>>>>
>>>>>> Ralph
>>>>>>
>>>>>>> On Oct 18, 2014, at 9:55 PM, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
>>>>>>>
>>>>>>> OK. I fixed the unit test. No I am getting a unit test in log4j-jul to hang. It looks to me that JMX is trying to log using JUL which then routes to Log4j after Log4j has already shutdown.
>>>>>>>
>>>>>>> "main" prio=5 tid=7fafbc001000 nid=0x103c0c000 in Object.wait() [103c0a000]
>>>>>>> java.lang.Thread.State: WAITING (on object monitor)
>>>>>>> at java.lang.Object.wait(Native Method)
>>>>>>> - waiting on <7d8404f48> (a java.util.HashSet)
>>>>>>> at java.lang.Object.wait(Object.java:485)
>>>>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:392)
>>>>>>> - locked <7d8404f48> (a java.util.HashSet)
>>>>>>> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
>>>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
>>>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
>>>>>>> at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:142)
>>>>>>> at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:121)
>>>>>>> at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:367)
>>>>>>> - locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
>>>>>>> at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:417)
>>>>>>> - locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
>>>>>>> at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:138)
>>>>>>> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:147)
>>>>>>> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:41)
>>>>>>> at org.apache.logging.log4j.LogManager.getContext(LogManager.java:175)
>>>>>>> at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:102)
>>>>>>> at org.apache.logging.log4j.jul.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:34)
>>>>>>> at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42)
>>>>>>> at org.apache.logging.log4j.jul.LogManager.getLogger(LogManager.java:89)
>>>>>>> at java.util.logging.LogManager.demandLogger(LogManager.java:369)
>>>>>>> at java.util.logging.Logger.demandLogger(Logger.java:290)
>>>>>>> at java.util.logging.Logger.getLogger(Logger.java:321)
>>>>>>> - locked <7e0ac5608> (a java.lang.Class for java.util.logging.Logger)
>>>>>>> at com.sun.jmx.trace.TraceManager.getLogger(TraceManager.java:166)
>>>>>>> at com.sun.jmx.trace.TraceManager.isSelected(TraceManager.java:197)
>>>>>>> at com.sun.jmx.trace.Trace.isSelected(Trace.java:89)
>>>>>>> at com.sun.jmx.mbeanserver.Repository.isTraceOn(Repository.java:68)
>>>>>>> at com.sun.jmx.mbeanserver.Repository.retrieve(Repository.java:487)
>>>>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1087)
>>>>>>> - locked <7d8404e68> (a com.sun.jmx.interceptor.DefaultMBeanServerInterceptor)
>>>>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.exclusiveUnregisterMBean(DefaultMBeanServerInterceptor.java:415)
>>>>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:403)
>>>>>>> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
>>>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
>>>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
>>>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:217)
>>>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerContext.java:226)
>>>>>>> at org.apache.logging.log4j.core.config.Configurator.shutdown(Configurator.java:173)
>>>>>>> at org.apache.logging.log4j.junit.InitialLoggerContext$1.evaluate(InitialLoggerContext.java:68)
>>>>>>> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>>>>>>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
>>>>>>> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
>>>>>>> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
>>>>>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
>>>>>>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
>>>>>>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
>>>>>>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
>>>>>>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
>>>>>>> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
>>>>>>> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
>>>>>>> at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
>>>>>>> at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
>>>>>>> at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
>>>>>>> at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
>>>>>>> at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
>>>>>>> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> On Oct 18, 2014, at 7:33 PM, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
>>>>>>>>
>>>>>>>> So I fixed the compilation errors. Now I get an error in one of the unit tests. I will have to look into this.
>>>>>>>>
>>>>>>>> Results :
>>>>>>>>
>>>>>>>> Tests in error:
>>>>>>>> ShutdownCallbackRegistryTest.testShutdownCallbackRegistry:53 ? ConcurrentModification
>>>>>>>>
>>>>>>>> Tests run: 743, Failures: 0, Errors: 1, Skipped: 29
>>>>>>>>
>>>>>>>> Ralph
>>>>>>>
>>>>>>
>>>>
>>
Re: Unit test failure
Posted by Remko Popma <re...@gmail.com>.
Nice!
Sent from my iPhone
> On 2014/10/20, at 4:41, Ralph Goers <rg...@apache.org> wrote:
>
> The fix was actually simpler. I just moved the unregistering of MBeans to the first thing during shutdown of the LoggerContext. That way it is still valid should the JDK try to log.
>
> Ralph
>
>> On Oct 18, 2014, at 11:05 PM, Ralph Goers <rg...@apache.org> wrote:
>>
>> Actually, we probably need a dummy contact factory on shutdown. It is getting late and I am going to bed. I'm not sure how much time I will spend on this tomorrow.
>>
>> Sent from my iPad
>>
>>> On Oct 18, 2014, at 10:57 PM, Ralph Goers <ra...@dslextreme.com> wrote:
>>>
>>> Yeah, that probably makes the most sense.
>>>
>>> Ralph
>>>
>>>> On Oct 18, 2014, at 10:51 PM, Remko Popma <re...@gmail.com> wrote:
>>>>
>>>> Shooting from the hip: is it an idea to create/register a dummy context on shutdown, to prevent a real one from being created? (I have not looked at the code; no idea if this would work in practice.)
>>>>
>>>> Sent from my iPhone
>>>>
>>>>> On 2014/10/19, at 14:44, Ralph Goers <ra...@dslextreme.com> wrote:
>>>>>
>>>>> The LoggerContext has stopped. We then try to unregister MBeans. This calls java.util.logging, which in turn creates a new LoggerContext. It seems to me that we should be preventing this but it isn’t quire clear to me yet how.
>>>>>
>>>>> Ralph
>>>>>
>>>>>> On Oct 18, 2014, at 9:55 PM, Ralph Goers <ra...@dslextreme.com> wrote:
>>>>>>
>>>>>> OK. I fixed the unit test. No I am getting a unit test in log4j-jul to hang. It looks to me that JMX is trying to log using JUL which then routes to Log4j after Log4j has already shutdown.
>>>>>>
>>>>>> "main" prio=5 tid=7fafbc001000 nid=0x103c0c000 in Object.wait() [103c0a000]
>>>>>> java.lang.Thread.State: WAITING (on object monitor)
>>>>>> at java.lang.Object.wait(Native Method)
>>>>>> - waiting on <7d8404f48> (a java.util.HashSet)
>>>>>> at java.lang.Object.wait(Object.java:485)
>>>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:392)
>>>>>> - locked <7d8404f48> (a java.util.HashSet)
>>>>>> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
>>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
>>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
>>>>>> at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:142)
>>>>>> at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:121)
>>>>>> at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:367)
>>>>>> - locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
>>>>>> at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:417)
>>>>>> - locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
>>>>>> at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:138)
>>>>>> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:147)
>>>>>> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:41)
>>>>>> at org.apache.logging.log4j.LogManager.getContext(LogManager.java:175)
>>>>>> at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:102)
>>>>>> at org.apache.logging.log4j.jul.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:34)
>>>>>> at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42)
>>>>>> at org.apache.logging.log4j.jul.LogManager.getLogger(LogManager.java:89)
>>>>>> at java.util.logging.LogManager.demandLogger(LogManager.java:369)
>>>>>> at java.util.logging.Logger.demandLogger(Logger.java:290)
>>>>>> at java.util.logging.Logger.getLogger(Logger.java:321)
>>>>>> - locked <7e0ac5608> (a java.lang.Class for java.util.logging.Logger)
>>>>>> at com.sun.jmx.trace.TraceManager.getLogger(TraceManager.java:166)
>>>>>> at com.sun.jmx.trace.TraceManager.isSelected(TraceManager.java:197)
>>>>>> at com.sun.jmx.trace.Trace.isSelected(Trace.java:89)
>>>>>> at com.sun.jmx.mbeanserver.Repository.isTraceOn(Repository.java:68)
>>>>>> at com.sun.jmx.mbeanserver.Repository.retrieve(Repository.java:487)
>>>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1087)
>>>>>> - locked <7d8404e68> (a com.sun.jmx.interceptor.DefaultMBeanServerInterceptor)
>>>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.exclusiveUnregisterMBean(DefaultMBeanServerInterceptor.java:415)
>>>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:403)
>>>>>> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
>>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
>>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
>>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:217)
>>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerContext.java:226)
>>>>>> at org.apache.logging.log4j.core.config.Configurator.shutdown(Configurator.java:173)
>>>>>> at org.apache.logging.log4j.junit.InitialLoggerContext$1.evaluate(InitialLoggerContext.java:68)
>>>>>> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>>>>>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
>>>>>> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
>>>>>> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
>>>>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
>>>>>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
>>>>>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
>>>>>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
>>>>>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
>>>>>> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
>>>>>> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
>>>>>> at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
>>>>>> at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
>>>>>> at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
>>>>>> at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
>>>>>> at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
>>>>>> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> On Oct 18, 2014, at 7:33 PM, Ralph Goers <ra...@dslextreme.com> wrote:
>>>>>>>
>>>>>>> So I fixed the compilation errors. Now I get an error in one of the unit tests. I will have to look into this.
>>>>>>>
>>>>>>> Results :
>>>>>>>
>>>>>>> Tests in error:
>>>>>>> ShutdownCallbackRegistryTest.testShutdownCallbackRegistry:53 ? ConcurrentModification
>>>>>>>
>>>>>>> Tests run: 743, Failures: 0, Errors: 1, Skipped: 29
>>>>>>>
>>>>>>> Ralph
>
Re: Unit test failure
Posted by Ralph Goers <rg...@apache.org>.
The fix was actually simpler. I just moved the unregistering of MBeans to the first thing during shutdown of the LoggerContext. That way it is still valid should the JDK try to log.
Ralph
> On Oct 18, 2014, at 11:05 PM, Ralph Goers <rg...@apache.org> wrote:
>
> Actually, we probably need a dummy contact factory on shutdown. It is getting late and I am going to bed. I'm not sure how much time I will spend on this tomorrow.
>
> Sent from my iPad
>
> On Oct 18, 2014, at 10:57 PM, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
>
>> Yeah, that probably makes the most sense.
>>
>> Ralph
>>
>>> On Oct 18, 2014, at 10:51 PM, Remko Popma <remko.popma@gmail.com <ma...@gmail.com>> wrote:
>>>
>>> Shooting from the hip: is it an idea to create/register a dummy context on shutdown, to prevent a real one from being created? (I have not looked at the code; no idea if this would work in practice.)
>>>
>>> Sent from my iPhone
>>>
>>> On 2014/10/19, at 14:44, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
>>>
>>>> The LoggerContext has stopped. We then try to unregister MBeans. This calls java.util.logging, which in turn creates a new LoggerContext. It seems to me that we should be preventing this but it isn’t quire clear to me yet how.
>>>>
>>>> Ralph
>>>>
>>>>> On Oct 18, 2014, at 9:55 PM, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
>>>>>
>>>>> OK. I fixed the unit test. No I am getting a unit test in log4j-jul to hang. It looks to me that JMX is trying to log using JUL which then routes to Log4j after Log4j has already shutdown.
>>>>>
>>>>> "main" prio=5 tid=7fafbc001000 nid=0x103c0c000 in Object.wait() [103c0a000]
>>>>> java.lang.Thread.State: WAITING (on object monitor)
>>>>> at java.lang.Object.wait(Native Method)
>>>>> - waiting on <7d8404f48> (a java.util.HashSet)
>>>>> at java.lang.Object.wait(Object.java:485)
>>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:392)
>>>>> - locked <7d8404f48> (a java.util.HashSet)
>>>>> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
>>>>> at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:142)
>>>>> at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:121)
>>>>> at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:367)
>>>>> - locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
>>>>> at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:417)
>>>>> - locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
>>>>> at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:138)
>>>>> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:147)
>>>>> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:41)
>>>>> at org.apache.logging.log4j.LogManager.getContext(LogManager.java:175)
>>>>> at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:102)
>>>>> at org.apache.logging.log4j.jul.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:34)
>>>>> at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42)
>>>>> at org.apache.logging.log4j.jul.LogManager.getLogger(LogManager.java:89)
>>>>> at java.util.logging.LogManager.demandLogger(LogManager.java:369)
>>>>> at java.util.logging.Logger.demandLogger(Logger.java:290)
>>>>> at java.util.logging.Logger.getLogger(Logger.java:321)
>>>>> - locked <7e0ac5608> (a java.lang.Class for java.util.logging.Logger)
>>>>> at com.sun.jmx.trace.TraceManager.getLogger(TraceManager.java:166)
>>>>> at com.sun.jmx.trace.TraceManager.isSelected(TraceManager.java:197)
>>>>> at com.sun.jmx.trace.Trace.isSelected(Trace.java:89)
>>>>> at com.sun.jmx.mbeanserver.Repository.isTraceOn(Repository.java:68)
>>>>> at com.sun.jmx.mbeanserver.Repository.retrieve(Repository.java:487)
>>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1087)
>>>>> - locked <7d8404e68> (a com.sun.jmx.interceptor.DefaultMBeanServerInterceptor)
>>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.exclusiveUnregisterMBean(DefaultMBeanServerInterceptor.java:415)
>>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:403)
>>>>> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
>>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:217)
>>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerContext.java:226)
>>>>> at org.apache.logging.log4j.core.config.Configurator.shutdown(Configurator.java:173)
>>>>> at org.apache.logging.log4j.junit.InitialLoggerContext$1.evaluate(InitialLoggerContext.java:68)
>>>>> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>>>>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
>>>>> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
>>>>> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
>>>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
>>>>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
>>>>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
>>>>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
>>>>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
>>>>> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
>>>>> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
>>>>> at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
>>>>> at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
>>>>> at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
>>>>> at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
>>>>> at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
>>>>> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> On Oct 18, 2014, at 7:33 PM, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
>>>>>>
>>>>>> So I fixed the compilation errors. Now I get an error in one of the unit tests. I will have to look into this.
>>>>>>
>>>>>> Results :
>>>>>>
>>>>>> Tests in error:
>>>>>> ShutdownCallbackRegistryTest.testShutdownCallbackRegistry:53 ? ConcurrentModification
>>>>>>
>>>>>> Tests run: 743, Failures: 0, Errors: 1, Skipped: 29
>>>>>>
>>>>>> Ralph
>>>>>
>>>>
>>
Re: Unit test failure
Posted by Ralph Goers <rg...@apache.org>.
Actually, we probably need a dummy contact factory on shutdown. It is getting late and I am going to bed. I'm not sure how much time I will spend on this tomorrow.
Sent from my iPad
> On Oct 18, 2014, at 10:57 PM, Ralph Goers <ra...@dslextreme.com> wrote:
>
> Yeah, that probably makes the most sense.
>
> Ralph
>
>> On Oct 18, 2014, at 10:51 PM, Remko Popma <re...@gmail.com> wrote:
>>
>> Shooting from the hip: is it an idea to create/register a dummy context on shutdown, to prevent a real one from being created? (I have not looked at the code; no idea if this would work in practice.)
>>
>> Sent from my iPhone
>>
>>> On 2014/10/19, at 14:44, Ralph Goers <ra...@dslextreme.com> wrote:
>>>
>>> The LoggerContext has stopped. We then try to unregister MBeans. This calls java.util.logging, which in turn creates a new LoggerContext. It seems to me that we should be preventing this but it isn’t quire clear to me yet how.
>>>
>>> Ralph
>>>
>>>> On Oct 18, 2014, at 9:55 PM, Ralph Goers <ra...@dslextreme.com> wrote:
>>>>
>>>> OK. I fixed the unit test. No I am getting a unit test in log4j-jul to hang. It looks to me that JMX is trying to log using JUL which then routes to Log4j after Log4j has already shutdown.
>>>>
>>>> "main" prio=5 tid=7fafbc001000 nid=0x103c0c000 in Object.wait() [103c0a000]
>>>> java.lang.Thread.State: WAITING (on object monitor)
>>>> at java.lang.Object.wait(Native Method)
>>>> - waiting on <7d8404f48> (a java.util.HashSet)
>>>> at java.lang.Object.wait(Object.java:485)
>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:392)
>>>> - locked <7d8404f48> (a java.util.HashSet)
>>>> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
>>>> at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:142)
>>>> at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:121)
>>>> at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:367)
>>>> - locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
>>>> at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:417)
>>>> - locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
>>>> at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:138)
>>>> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:147)
>>>> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:41)
>>>> at org.apache.logging.log4j.LogManager.getContext(LogManager.java:175)
>>>> at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:102)
>>>> at org.apache.logging.log4j.jul.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:34)
>>>> at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42)
>>>> at org.apache.logging.log4j.jul.LogManager.getLogger(LogManager.java:89)
>>>> at java.util.logging.LogManager.demandLogger(LogManager.java:369)
>>>> at java.util.logging.Logger.demandLogger(Logger.java:290)
>>>> at java.util.logging.Logger.getLogger(Logger.java:321)
>>>> - locked <7e0ac5608> (a java.lang.Class for java.util.logging.Logger)
>>>> at com.sun.jmx.trace.TraceManager.getLogger(TraceManager.java:166)
>>>> at com.sun.jmx.trace.TraceManager.isSelected(TraceManager.java:197)
>>>> at com.sun.jmx.trace.Trace.isSelected(Trace.java:89)
>>>> at com.sun.jmx.mbeanserver.Repository.isTraceOn(Repository.java:68)
>>>> at com.sun.jmx.mbeanserver.Repository.retrieve(Repository.java:487)
>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1087)
>>>> - locked <7d8404e68> (a com.sun.jmx.interceptor.DefaultMBeanServerInterceptor)
>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.exclusiveUnregisterMBean(DefaultMBeanServerInterceptor.java:415)
>>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:403)
>>>> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
>>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:217)
>>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerContext.java:226)
>>>> at org.apache.logging.log4j.core.config.Configurator.shutdown(Configurator.java:173)
>>>> at org.apache.logging.log4j.junit.InitialLoggerContext$1.evaluate(InitialLoggerContext.java:68)
>>>> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>>>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
>>>> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
>>>> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
>>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
>>>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
>>>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
>>>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
>>>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
>>>> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
>>>> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
>>>> at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
>>>> at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
>>>> at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
>>>> at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
>>>> at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
>>>> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> On Oct 18, 2014, at 7:33 PM, Ralph Goers <ra...@dslextreme.com> wrote:
>>>>>
>>>>> So I fixed the compilation errors. Now I get an error in one of the unit tests. I will have to look into this.
>>>>>
>>>>> Results :
>>>>>
>>>>> Tests in error:
>>>>> ShutdownCallbackRegistryTest.testShutdownCallbackRegistry:53 ? ConcurrentModification
>>>>>
>>>>> Tests run: 743, Failures: 0, Errors: 1, Skipped: 29
>>>>>
>>>>> Ralph
>>>>
>>>
>
Re: Unit test failure
Posted by Ralph Goers <ra...@dslextreme.com>.
Yeah, that probably makes the most sense.
Ralph
> On Oct 18, 2014, at 10:51 PM, Remko Popma <re...@gmail.com> wrote:
>
> Shooting from the hip: is it an idea to create/register a dummy context on shutdown, to prevent a real one from being created? (I have not looked at the code; no idea if this would work in practice.)
>
> Sent from my iPhone
>
> On 2014/10/19, at 14:44, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
>
>> The LoggerContext has stopped. We then try to unregister MBeans. This calls java.util.logging, which in turn creates a new LoggerContext. It seems to me that we should be preventing this but it isn’t quire clear to me yet how.
>>
>> Ralph
>>
>>> On Oct 18, 2014, at 9:55 PM, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
>>>
>>> OK. I fixed the unit test. No I am getting a unit test in log4j-jul to hang. It looks to me that JMX is trying to log using JUL which then routes to Log4j after Log4j has already shutdown.
>>>
>>> "main" prio=5 tid=7fafbc001000 nid=0x103c0c000 in Object.wait() [103c0a000]
>>> java.lang.Thread.State: WAITING (on object monitor)
>>> at java.lang.Object.wait(Native Method)
>>> - waiting on <7d8404f48> (a java.util.HashSet)
>>> at java.lang.Object.wait(Object.java:485)
>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:392)
>>> - locked <7d8404f48> (a java.util.HashSet)
>>> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
>>> at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
>>> at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:142)
>>> at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:121)
>>> at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:367)
>>> - locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
>>> at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:417)
>>> - locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
>>> at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:138)
>>> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:147)
>>> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:41)
>>> at org.apache.logging.log4j.LogManager.getContext(LogManager.java:175)
>>> at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:102)
>>> at org.apache.logging.log4j.jul.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:34)
>>> at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42)
>>> at org.apache.logging.log4j.jul.LogManager.getLogger(LogManager.java:89)
>>> at java.util.logging.LogManager.demandLogger(LogManager.java:369)
>>> at java.util.logging.Logger.demandLogger(Logger.java:290)
>>> at java.util.logging.Logger.getLogger(Logger.java:321)
>>> - locked <7e0ac5608> (a java.lang.Class for java.util.logging.Logger)
>>> at com.sun.jmx.trace.TraceManager.getLogger(TraceManager.java:166)
>>> at com.sun.jmx.trace.TraceManager.isSelected(TraceManager.java:197)
>>> at com.sun.jmx.trace.Trace.isSelected(Trace.java:89)
>>> at com.sun.jmx.mbeanserver.Repository.isTraceOn(Repository.java:68)
>>> at com.sun.jmx.mbeanserver.Repository.retrieve(Repository.java:487)
>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1087)
>>> - locked <7d8404e68> (a com.sun.jmx.interceptor.DefaultMBeanServerInterceptor)
>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.exclusiveUnregisterMBean(DefaultMBeanServerInterceptor.java:415)
>>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:403)
>>> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
>>> at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
>>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:217)
>>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerContext.java:226)
>>> at org.apache.logging.log4j.core.config.Configurator.shutdown(Configurator.java:173)
>>> at org.apache.logging.log4j.junit.InitialLoggerContext$1.evaluate(InitialLoggerContext.java:68)
>>> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
>>> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
>>> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
>>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
>>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
>>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
>>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
>>> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
>>> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
>>> at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
>>> at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
>>> at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
>>> at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
>>> at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
>>> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
>>>
>>>
>>>
>>>
>>>
>>>
>>>> On Oct 18, 2014, at 7:33 PM, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
>>>>
>>>> So I fixed the compilation errors. Now I get an error in one of the unit tests. I will have to look into this.
>>>>
>>>> Results :
>>>>
>>>> Tests in error:
>>>> ShutdownCallbackRegistryTest.testShutdownCallbackRegistry:53 ? ConcurrentModification
>>>>
>>>> Tests run: 743, Failures: 0, Errors: 1, Skipped: 29
>>>>
>>>> Ralph
>>>
>>
Re: Unit test failure
Posted by Remko Popma <re...@gmail.com>.
Shooting from the hip: is it an idea to create/register a dummy context on shutdown, to prevent a real one from being created? (I have not looked at the code; no idea if this would work in practice.)
Sent from my iPhone
> On 2014/10/19, at 14:44, Ralph Goers <ra...@dslextreme.com> wrote:
>
> The LoggerContext has stopped. We then try to unregister MBeans. This calls java.util.logging, which in turn creates a new LoggerContext. It seems to me that we should be preventing this but it isn’t quire clear to me yet how.
>
> Ralph
>
>> On Oct 18, 2014, at 9:55 PM, Ralph Goers <ra...@dslextreme.com> wrote:
>>
>> OK. I fixed the unit test. No I am getting a unit test in log4j-jul to hang. It looks to me that JMX is trying to log using JUL which then routes to Log4j after Log4j has already shutdown.
>>
>> "main" prio=5 tid=7fafbc001000 nid=0x103c0c000 in Object.wait() [103c0a000]
>> java.lang.Thread.State: WAITING (on object monitor)
>> at java.lang.Object.wait(Native Method)
>> - waiting on <7d8404f48> (a java.util.HashSet)
>> at java.lang.Object.wait(Object.java:485)
>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:392)
>> - locked <7d8404f48> (a java.util.HashSet)
>> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
>> at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
>> at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:142)
>> at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:121)
>> at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:367)
>> - locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
>> at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:417)
>> - locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
>> at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:138)
>> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:147)
>> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:41)
>> at org.apache.logging.log4j.LogManager.getContext(LogManager.java:175)
>> at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:102)
>> at org.apache.logging.log4j.jul.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:34)
>> at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42)
>> at org.apache.logging.log4j.jul.LogManager.getLogger(LogManager.java:89)
>> at java.util.logging.LogManager.demandLogger(LogManager.java:369)
>> at java.util.logging.Logger.demandLogger(Logger.java:290)
>> at java.util.logging.Logger.getLogger(Logger.java:321)
>> - locked <7e0ac5608> (a java.lang.Class for java.util.logging.Logger)
>> at com.sun.jmx.trace.TraceManager.getLogger(TraceManager.java:166)
>> at com.sun.jmx.trace.TraceManager.isSelected(TraceManager.java:197)
>> at com.sun.jmx.trace.Trace.isSelected(Trace.java:89)
>> at com.sun.jmx.mbeanserver.Repository.isTraceOn(Repository.java:68)
>> at com.sun.jmx.mbeanserver.Repository.retrieve(Repository.java:487)
>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1087)
>> - locked <7d8404e68> (a com.sun.jmx.interceptor.DefaultMBeanServerInterceptor)
>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.exclusiveUnregisterMBean(DefaultMBeanServerInterceptor.java:415)
>> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:403)
>> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
>> at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
>> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:217)
>> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerContext.java:226)
>> at org.apache.logging.log4j.core.config.Configurator.shutdown(Configurator.java:173)
>> at org.apache.logging.log4j.junit.InitialLoggerContext$1.evaluate(InitialLoggerContext.java:68)
>> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
>> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
>> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
>> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
>> at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
>> at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
>> at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
>> at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
>> at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
>> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
>>
>>
>>
>>
>>
>>
>>> On Oct 18, 2014, at 7:33 PM, Ralph Goers <ra...@dslextreme.com> wrote:
>>>
>>> So I fixed the compilation errors. Now I get an error in one of the unit tests. I will have to look into this.
>>>
>>> Results :
>>>
>>> Tests in error:
>>> ShutdownCallbackRegistryTest.testShutdownCallbackRegistry:53 ? ConcurrentModification
>>>
>>> Tests run: 743, Failures: 0, Errors: 1, Skipped: 29
>>>
>>> Ralph
>
Re: Unit test failure
Posted by Ralph Goers <ra...@dslextreme.com>.
The LoggerContext has stopped. We then try to unregister MBeans. This calls java.util.logging, which in turn creates a new LoggerContext. It seems to me that we should be preventing this but it isn’t quire clear to me yet how.
Ralph
> On Oct 18, 2014, at 9:55 PM, Ralph Goers <ra...@dslextreme.com> wrote:
>
> OK. I fixed the unit test. No I am getting a unit test in log4j-jul to hang. It looks to me that JMX is trying to log using JUL which then routes to Log4j after Log4j has already shutdown.
>
> "main" prio=5 tid=7fafbc001000 nid=0x103c0c000 in Object.wait() [103c0a000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <7d8404f48> (a java.util.HashSet)
> at java.lang.Object.wait(Object.java:485)
> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:392)
> - locked <7d8404f48> (a java.util.HashSet)
> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
> at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
> at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:142)
> at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:121)
> at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:367)
> - locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
> at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:417)
> - locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
> at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:138)
> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:147)
> at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:41)
> at org.apache.logging.log4j.LogManager.getContext(LogManager.java:175)
> at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:102)
> at org.apache.logging.log4j.jul.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:34)
> at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42)
> at org.apache.logging.log4j.jul.LogManager.getLogger(LogManager.java:89)
> at java.util.logging.LogManager.demandLogger(LogManager.java:369)
> at java.util.logging.Logger.demandLogger(Logger.java:290)
> at java.util.logging.Logger.getLogger(Logger.java:321)
> - locked <7e0ac5608> (a java.lang.Class for java.util.logging.Logger)
> at com.sun.jmx.trace.TraceManager.getLogger(TraceManager.java:166)
> at com.sun.jmx.trace.TraceManager.isSelected(TraceManager.java:197)
> at com.sun.jmx.trace.Trace.isSelected(Trace.java:89)
> at com.sun.jmx.mbeanserver.Repository.isTraceOn(Repository.java:68)
> at com.sun.jmx.mbeanserver.Repository.retrieve(Repository.java:487)
> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1087)
> - locked <7d8404e68> (a com.sun.jmx.interceptor.DefaultMBeanServerInterceptor)
> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.exclusiveUnregisterMBean(DefaultMBeanServerInterceptor.java:415)
> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:403)
> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
> at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
> at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:217)
> at org.apache.logging.log4j.core.LoggerContext.stop(LoggerContext.java:226)
> at org.apache.logging.log4j.core.config.Configurator.shutdown(Configurator.java:173)
> at org.apache.logging.log4j.junit.InitialLoggerContext$1.evaluate(InitialLoggerContext.java:68)
> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
> at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
> at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
> at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
> at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
>
>
>
>
>
>
>> On Oct 18, 2014, at 7:33 PM, Ralph Goers <ralph.goers@dslextreme.com <ma...@dslextreme.com>> wrote:
>>
>> So I fixed the compilation errors. Now I get an error in one of the unit tests. I will have to look into this.
>>
>> Results :
>>
>> Tests in error:
>> ShutdownCallbackRegistryTest.testShutdownCallbackRegistry:53 ? ConcurrentModification
>>
>> Tests run: 743, Failures: 0, Errors: 1, Skipped: 29
>>
>> Ralph
>
Re: Unit test failure
Posted by Ralph Goers <ra...@dslextreme.com>.
OK. I fixed the unit test. No I am getting a unit test in log4j-jul to hang. It looks to me that JMX is trying to log using JUL which then routes to Log4j after Log4j has already shutdown.
"main" prio=5 tid=7fafbc001000 nid=0x103c0c000 in Object.wait() [103c0a000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7d8404f48> (a java.util.HashSet)
at java.lang.Object.wait(Object.java:485)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:392)
- locked <7d8404f48> (a java.util.HashSet)
at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:142)
at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:121)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:367)
- locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:417)
- locked <7d85b6cf8> (a org.apache.logging.log4j.core.LoggerContext)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:138)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:147)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:41)
at org.apache.logging.log4j.LogManager.getContext(LogManager.java:175)
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:102)
at org.apache.logging.log4j.jul.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:34)
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:42)
at org.apache.logging.log4j.jul.LogManager.getLogger(LogManager.java:89)
at java.util.logging.LogManager.demandLogger(LogManager.java:369)
at java.util.logging.Logger.demandLogger(Logger.java:290)
at java.util.logging.Logger.getLogger(Logger.java:321)
- locked <7e0ac5608> (a java.lang.Class for java.util.logging.Logger)
at com.sun.jmx.trace.TraceManager.getLogger(TraceManager.java:166)
at com.sun.jmx.trace.TraceManager.isSelected(TraceManager.java:197)
at com.sun.jmx.trace.Trace.isSelected(Trace.java:89)
at com.sun.jmx.mbeanserver.Repository.isTraceOn(Repository.java:68)
at com.sun.jmx.mbeanserver.Repository.retrieve(Repository.java:487)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1087)
- locked <7d8404e68> (a com.sun.jmx.interceptor.DefaultMBeanServerInterceptor)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.exclusiveUnregisterMBean(DefaultMBeanServerInterceptor.java:415)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:403)
at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:516)
at org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching(Server.java:312)
at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:231)
at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:217)
at org.apache.logging.log4j.core.LoggerContext.stop(LoggerContext.java:226)
at org.apache.logging.log4j.core.config.Configurator.shutdown(Configurator.java:173)
at org.apache.logging.log4j.junit.InitialLoggerContext$1.evaluate(InitialLoggerContext.java:68)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
> On Oct 18, 2014, at 7:33 PM, Ralph Goers <ra...@dslextreme.com> wrote:
>
> So I fixed the compilation errors. Now I get an error in one of the unit tests. I will have to look into this.
>
> Results :
>
> Tests in error:
> ShutdownCallbackRegistryTest.testShutdownCallbackRegistry:53 ? ConcurrentModification
>
> Tests run: 743, Failures: 0, Errors: 1, Skipped: 29
>
> Ralph