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