Ah ok. Two options: catch the exception and fall back to Executors.defaultThreadFactory(), or just use Executors.defaultThreadFactory() by default and allow it to be overridden via the protected constructor.
On 15 October 2014 00:07, Ralph Goers <ralph.go...@dslextreme.com> wrote: > See the javadoc for Executors.privilegedThreadFactory(). It is documented > as checking for that permission and throwing an AccessControlException. > Since it is called in the constructor of DefaultShutdownCallbackRegistry it > definitely has the potential for throwing an exception, which then causes > log4j initialization to fail. That just isn’t acceptable. > > Ralph > > > > On Oct 14, 2014, at 9:45 PM, Matt Sicker <boa...@gmail.com> wrote: > > We never use setContextClassLoader though. I'm not sure why that security > exception appears. I don't think there's any harm in fixing that. > > On 14 October 2014 22:59, Ralph Goers <ralph.go...@dslextreme.com> wrote: > >> Well darn. Matt put an Assert.requiredNonNull on the Registry in >> Log4jContextFactory. So even if the exception is caught it can’t be >> ignored. Unless I can find a way around this that commit is going to have >> to be reverted. >> >> Ralph >> >> On Oct 14, 2014, at 7:57 PM, ralph.goers @dslextreme.com < >> ralph.go...@dslextreme.com> wrote: >> >> I have an app that I was able to run successfully on a vanilla Tomcat. I >> need to check the security settings on te server. Regardless, this should >> not cause initialization to fail. >> >> Ralph >> >> On Tuesday, October 14, 2014, Gary Gregory <garydgreg...@gmail.com> >> wrote: >> >>> IIRC, it looks something Matt was working on recently and he did mention >>> working through security issues. Hopefully he will see this message and can >>> help out. >>> >>> It sounds like we need at last one integration tests for Tomcat... >>> >>> Gary >>> >>> On Tue, Oct 14, 2014 at 8:30 PM, Ralph Goers <ralph.go...@dslextreme.com >>> > wrote: >>> >>>> I am having a bit of trouble with the latest code. Log4j won’t start >>>> in tomcat due to a security violation. I am not going to go forward with >>>> the release until I can determine what the problem is and fix it. >>>> >>>> Ralph >>>> >>>> ERROR StatusLogger Unable to create class >>>> org.apache.logging.log4j.core.impl.Log4jContextFactory specified in >>>> jar:file:/usr/local/jakarta-tomcat/webapps/NextivaDriveBilling/WEB-INF/lib/log4j-core-2.1-SNAPSHOT.jar!/META-INF/log4j-provider.properties >>>> java.security.AccessControlException: access denied >>>> (java.lang.RuntimePermission setContextClassLoader) >>>> at >>>> java.security.AccessControlContext.checkPermission(AccessControlContext.java:374) >>>> at >>>> java.util.concurrent.Executors$PrivilegedThreadFactory.<init>(Executors.java:563) >>>> at >>>> java.util.concurrent.Executors.privilegedThreadFactory(Executors.java:321) >>>> at >>>> org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry.<init>(DefaultShutdownCallbackRegistry.java:54) >>>> at >>>> org.apache.logging.log4j.core.impl.Log4jContextFactory.createShutdownCallbackRegistry(Log4jContextFactory.java:117) >>>> at >>>> org.apache.logging.log4j.core.impl.Log4jContextFactory.<init>(Log4jContextFactory.java:54) >>>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >>>> Method) >>>> at >>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) >>>> at >>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >>>> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) >>>> at java.lang.Class.newInstance0(Class.java:357) >>>> at java.lang.Class.newInstance(Class.java:310) >>>> at org.apache.logging.log4j.LogManager.<clinit>(LogManager.java:96) >>>> at >>>> org.apache.logging.log4j.core.config.Configurator.getFactory(Configurator.java:154) >>>> at >>>> org.apache.logging.log4j.core.config.Configurator.initialize(Configurator.java:109) >>>> at >>>> org.apache.logging.log4j.web.Log4jWebInitializerImpl.initializeNonJndi(Log4jWebInitializerImpl.java:157) >>>> at >>>> org.apache.logging.log4j.web.Log4jWebInitializerImpl.start(Log4jWebInitializerImpl.java:107) >>>> at >>>> org.apache.logging.log4j.web.Log4jServletContextListener.contextInitialized(Log4jServletContextListener.java:45) >>>> at >>>> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3795) >>>> at >>>> org.apache.catalina.core.StandardContext.start(StandardContext.java:4252) >>>> at >>>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760) >>>> at >>>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) >>>> at >>>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) >>>> at >>>> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:884) >>>> at >>>> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:737) >>>> at >>>> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498) >>>> at >>>> org.apache.catalina.startup.HostConfig.start(HostConfig.java:1203) >>>> at >>>> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319) >>>> at >>>> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) >>>> at >>>> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022) >>>> at >>>> org.apache.catalina.core.StandardHost.start(StandardHost.java:736) >>>> at >>>> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) >>>> at >>>> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) >>>> at >>>> org.apache.catalina.core.StandardService.start(StandardService.java:448) >>>> at >>>> org.apache.catalina.core.StandardServer.start(StandardServer.java:700) >>>> at org.apache.catalina.startup.Catalina.start(Catalina.java:552) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>>> at java.lang.reflect.Method.invoke(Method.java:597) >>>> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) >>>> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433) >>>> >>>> ERROR StatusLogger Log4j2 could not find a logging implementation. Please >>>> add log4j-core to the classpath. Using SimpleLogger to log to the >>>> console... >>>> ERROR StatusLogger LogManager returned an instance of >>>> org.apache.logging.log4j.simple.SimpleLoggerContextFactory which does not >>>> implement org.apache.logging.log4j.core.impl.Log4jContextFactory. Unable >>>> to initialize Log4j. >>>> >>>> >>>> >>>> >>>> On Oct 14, 2014, at 9:16 AM, Matt Sicker <boa...@gmail.com> wrote: >>>> >>>> Oh crap, you're right. >>>> >>>> On 14 October 2014 11:05, Gary Gregory <garydgreg...@gmail.com> wrote: >>>> >>>>> Don't you have to login to Nexus to release though? >>>>> >>>>> Gary >>>>> >>>>> On Tue, Oct 14, 2014 at 11:34 AM, Matt Sicker <boa...@gmail.com> >>>>> wrote: >>>>> >>>>>> Question: if I start the release process with everything signed, can >>>>>> someone else complete it when the vote is done? >>>>>> >>>>>> On 13 October 2014 22:26, Ralph Goers <rgo...@apache.org> wrote: >>>>>> >>>>>>> Matt can't do it so I will. It will be in the next couple of days. >>>>>>> >>>>>>> Sent from my iPad >>>>>>> >>>>>>> On Oct 13, 2014, at 7:22 PM, Gary Gregory <garydgreg...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>> Hi All: >>>>>>> >>>>>>> I'm sure we are all busy (I am!) but do we have a plan for cutting >>>>>>> what will hopefully be the last 2.1 RC? >>>>>>> >>>>>>> Gary >>>>>>> >>>>>>> -- >>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>> <http://www.manning.com/bauer3/> >>>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>>>> Blog: http://garygregory.wordpress.com >>>>>>> Home: http://garygregory.com/ >>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Matt Sicker <boa...@gmail.com> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>> Java Persistence with Hibernate, Second Edition >>>>> <http://www.manning.com/bauer3/> >>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>>>> Spring Batch in Action <http://www.manning.com/templier/> >>>>> Blog: http://garygregory.wordpress.com >>>>> Home: http://garygregory.com/ >>>>> Tweet! http://twitter.com/GaryGregory >>>>> >>>> >>>> >>>> >>>> -- >>>> Matt Sicker <boa...@gmail.com> >>>> >>>> >>>> >>> >>> >>> -- >>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>> Java Persistence with Hibernate, Second Edition >>> <http://www.manning.com/bauer3/> >>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> >>> Spring Batch in Action <http://www.manning.com/templier/> >>> Blog: http://garygregory.wordpress.com >>> Home: http://garygregory.com/ >>> Tweet! http://twitter.com/GaryGregory >>> >> >> > > > -- > Matt Sicker <boa...@gmail.com> > > > -- Matt Sicker <boa...@gmail.com>