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 <[email protected]> wrote: > > Yeah, that probably makes the most sense. > > Ralph > >> On Oct 18, 2014, at 10:51 PM, Remko Popma <[email protected]> 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 <[email protected]> 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 <[email protected]> >>>> 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 <[email protected]> >>>>> 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 >>>> >>> >
