Nick, good job on finding the issue. Just curious, how does it work with new bugs found during the vote? Are they always show stoppers or only if the new version introduces a bug that did not exist in the old version?
Sent from my iPhone On 2013/05/09, at 13:06, Nick Williams <nicho...@nicholaswilliams.net> wrote: > Well, I hate to do this, but I've gotta -1 (non-binding, of course). beta5 > and beta6 are both unusable with Spring Framework (I didn't go back any > further). Any time an error gets logged through log4j-jcl bridge using > Spring, the error below appears in the Tomcat log, masking the error that > Spring was trying to log and making it very difficult to figure out what > happened. I've also included my configuration file below the stack trace. The > root error is happening on Tomcat 6 due to Spring bug, and that root problem > is unimportant. The important problem is the Log4j error that masks it. > > I've created LOG4J2-245 regarding this issue. > > SEVERE: Exception sending context initialized event to listener instance of > class org.springframework.web.context.ContextLoaderListener > java.util.EmptyStackException > at java.util.Stack.peek(Stack.java:102) > at > org.apache.logging.log4j.core.impl.ThrowableProxy.resolvePackageData(ThrowableProxy.java:339) > at > org.apache.logging.log4j.core.impl.ThrowableProxy.<init>(ThrowableProxy.java:71) > at > org.apache.logging.log4j.core.impl.Log4jLogEvent.<init>(Log4jLogEvent.java:110) > at > org.apache.logging.log4j.core.impl.Log4jLogEvent.<init>(Log4jLogEvent.java:81) > at > org.apache.logging.log4j.core.config.LoggerConfig.createEvent(LoggerConfig.java:423) > at > org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:344) > at org.apache.logging.log4j.core.Logger.log(Logger.java:110) > at > org.apache.logging.log4j.spi.AbstractLoggerWrapper.log(AbstractLoggerWrapper.java:55) > at > org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:539) > at > org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:319) > at > org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) > at > org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4765) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5210) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) > at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:698) > at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1491) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:491) > at > org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) > at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:792) > at > org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:468) > at > org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:415) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:491) > at > org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) > at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:792) > at > javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1465) > at > javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:75) > at > javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1306) > at > javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1398) > at > javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:827) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:491) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) > at sun.rmi.transport.Transport$1.run(Transport.java:177) > at sun.rmi.transport.Transport$1.run(Transport.java:174) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:173) > at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:724) > > <?xml version="1.0" encoding="UTF-8"?> > <configuration status="WARN"> > <appenders> > <Console name="Console" target="SYSTEM_OUT"> > <PatternLayout > pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - > %msg%n"/> > </Console> > <RollingFile name="WroxFileAppender" fileName="../logs/application.log" > filePattern="../logs/application-%d{MM-dd-yyyy}-%i.log"> > <PatternLayout> > <pattern>%d{HH:mm:ss.SSS} [%t] %X{id} %X{username} %-5level > %c{36} %l: %msg%n</pattern> > </PatternLayout> > <Policies> > <SizeBasedTriggeringPolicy size="10 MB" /> > </Policies> > <DefaultRolloverStrategy min="1" max="4" /> > </RollingFile> > </appenders> > <loggers> > <root level="warn"> > <appender-ref ref="Console" /> > <appender-ref ref="WroxFileAppender" /> > </root> > <logger name="com.wrox" level="info" /> > <logger name="org.apache" level="info" /> > <logger name="org.springframework" level="info" /> > </loggers> > </configuration> > > On May 6, 2013, at 10:52 PM, Ralph Goers wrote: > >> This is a vote to release Log4j 2.0-beta6, the eighth release of Log4j 2.0. >> This is the second release candidate which fixes issues with a few missing >> license headers and some findbugs issues. >> >> Changes in this version include: >> >> Fixed Bugs: >> o LOG4J2-231: Logger.getParent() was not returning the correct Logger. >> o LOG4J2-201: Renamed Plugin annotation attribute from "type" to >> "category". >> o LOG4J2-219: Fix: install default root logger if not configured (this is >> unchanged), >> but make sure to include configured named loggers. Clarified >> documentation. Thanks to Peter DePasquale. >> o LOG4J2-159: Use OSGi version format in Fragment-Host >> o LOG4J2-234: RegexFilter threw a NullPointerException when used as a >> context-wide filter. >> o LOG4J2-192: Add support for interpolating Environment variables when >> processing the configuration. >> o LOG4J2-235: Removed dependency on tools jar from core module, made >> jconsole dependency optional. Thanks to Sebastian Oerding. >> o LOG4J2-233: Fixed link to log4j-user mailing list. >> o LOG4J2-222: Disruptor will now shutdown during Tomcat shutdown. Thanks to >> Steven Yang. >> o LOG4J2-224: The FlumeAppender failed to start if the Flume RPCClient >> could not connect to any Flume agents. >> o LOG4J2-223: Fix LoggerContext start and stop to eliminate >> IllegalStateException and NoClassDefFound errors. >> o LOG4J2-221: Remove hundreds of compiler warnings. Thanks to Nick >> Williams. >> o LOG4J2-215: Various small documentation fixes. >> o LOG4J2-217: Ensure PluginManager streams are always closed. Thanks to >> Fabien Sanglard. >> >> Changes: >> o LOG4J2-237: Moved JMX Client GUI classes into separate jmx-gui submodule. >> o LOG4J2-230: Improved error reporting when misconfigured. Thanks to >> Wojciech Zaręba. >> o Renamed AsynchAppender to AsyncAppender. Plugin name became Async (was >> Asynch). >> o Removed CheckStyle false positives for NewlineAtEndOfFile and whitespace >> following '*' at end of line in javadoc. >> o Moved Clock interface to package org.apache.logging.log4j.core.helpers. >> o LOG4J2-225: Documentation updates to clarify use and impact of location >> in pattern layouts. >> >> Please test and cast your votes. >> [] +1, release the artifacts >> [] -1, don't release because… >> >> The vote will remain open for 72 hours (or more if required). >> >> Tag: >> https://svn.apache.org/repos/asf/logging/log4j/log4j2/tags/log4j-2.0-beta6/ >> >> Web Site: http://people.apache.org/~rgoers/log4j2/ >> >> Artifacts: >> https://repository.apache.org/content/repositories/orgapachelogging-013/ >> >> The artifacts may be downloaded using >> wget -e robots=off --cut-dirs=3 -r -p -np --no-check-certificate >> https://repository.apache.org/content/repositories/orgapachelogging-013/org/apache/logging/log4j/ >> >> Description: >> >> Log4j 2.0-beta6 rc2 >> >> Details: >> >> The following artifacts have been staged to the org.apache.logging-013 >> (u:rgoers, a:99.180.69.21) repository. >> >> archetype-catalog.xml >> log4j-jmx-gui-2.0-beta6.jar.asc >> log4j-jmx-gui-2.0-beta6-sources.jar >> log4j-jmx-gui-2.0-beta6-javadoc.jar >> log4j-jmx-gui-2.0-beta6-sources.jar.asc >> log4j-jmx-gui-2.0-beta6.pom >> log4j-jmx-gui-2.0-beta6-javadoc.jar.asc >> log4j-jmx-gui-2.0-beta6.jar >> log4j-jmx-gui-2.0-beta6.pom.asc >> log4j-web-2.0-beta6.jar.asc >> log4j-web-2.0-beta6-sources.jar >> log4j-web-2.0-beta6.jar >> log4j-web-2.0-beta6-sources.jar.asc >> log4j-web-2.0-beta6-javadoc.jar.asc >> log4j-web-2.0-beta6.pom.asc >> log4j-web-2.0-beta6-javadoc.jar >> log4j-web-2.0-beta6.pom >> log4j-slf4j-impl-2.0-beta6.pom.asc >> log4j-slf4j-impl-2.0-beta6-javadoc.jar.asc >> log4j-slf4j-impl-2.0-beta6.pom >> log4j-slf4j-impl-2.0-beta6-javadoc.jar >> log4j-slf4j-impl-2.0-beta6.jar >> log4j-slf4j-impl-2.0-beta6.jar.asc >> log4j-slf4j-impl-2.0-beta6-sources.jar >> log4j-slf4j-impl-2.0-beta6-sources.jar.asc >> flume-remote-2.0-beta6.pom.asc >> flume-remote-2.0-beta6.pom >> flume-remote-2.0-beta6.war >> flume-remote-2.0-beta6.war.asc >> flume-remote-2.0-beta6-sources.jar.asc >> flume-remote-2.0-beta6-sources.jar >> flume-common-2.0-beta6.pom >> flume-common-2.0-beta6-sources.jar >> flume-common-2.0-beta6.jar >> flume-common-2.0-beta6-javadoc.jar.asc >> flume-common-2.0-beta6.jar.asc >> flume-common-2.0-beta6-sources.jar.asc >> flume-common-2.0-beta6.pom.asc >> flume-common-2.0-beta6-javadoc.jar >> flume-embedded-2.0-beta6.war >> flume-embedded-2.0-beta6.pom.asc >> flume-embedded-2.0-beta6-sources.jar.asc >> flume-embedded-2.0-beta6.pom >> flume-embedded-2.0-beta6.war.asc >> flume-embedded-2.0-beta6-sources.jar >> log4j-samples-2.0-beta6.pom >> log4j-samples-2.0-beta6.pom.asc >> log4j-jcl-2.0-beta6-javadoc.jar.asc >> log4j-jcl-2.0-beta6-sources.jar >> log4j-jcl-2.0-beta6.jar >> log4j-jcl-2.0-beta6.jar.asc >> log4j-jcl-2.0-beta6.pom.asc >> log4j-jcl-2.0-beta6.pom >> log4j-jcl-2.0-beta6-javadoc.jar >> log4j-jcl-2.0-beta6-sources.jar.asc >> log4j-taglib-2.0-beta6-javadoc.jar >> log4j-taglib-2.0-beta6.jar >> log4j-taglib-2.0-beta6-sources.jar.asc >> log4j-taglib-2.0-beta6.jar.asc >> log4j-taglib-2.0-beta6.pom >> log4j-taglib-2.0-beta6.pom.asc >> log4j-taglib-2.0-beta6-javadoc.jar.asc >> log4j-taglib-2.0-beta6-sources.jar >> log4j-distribution-2.0-beta6-src.tar.gz.asc >> log4j-distribution-2.0-beta6-bin.tar.gz >> log4j-distribution-2.0-beta6-src.tar.gz >> log4j-distribution-2.0-beta6-bin.tar.gz.asc >> log4j-distribution-2.0-beta6-src.zip >> log4j-distribution-2.0-beta6-bin.zip.asc >> log4j-distribution-2.0-beta6-src.zip.asc >> log4j-distribution-2.0-beta6.pom.asc >> log4j-distribution-2.0-beta6-bin.zip >> log4j-distribution-2.0-beta6.pom >> log4j-1.2-api-2.0-beta6-sources.jar >> log4j-1.2-api-2.0-beta6-javadoc.jar >> log4j-1.2-api-2.0-beta6-sources.jar.asc >> log4j-1.2-api-2.0-beta6-javadoc.jar.asc >> log4j-1.2-api-2.0-beta6.pom >> log4j-1.2-api-2.0-beta6.jar >> log4j-1.2-api-2.0-beta6.jar.asc >> log4j-1.2-api-2.0-beta6.pom.asc >> log4j-flume-ng-2.0-beta6.jar.asc >> log4j-flume-ng-2.0-beta6-sources.jar.asc >> log4j-flume-ng-2.0-beta6-sources.jar >> log4j-flume-ng-2.0-beta6-javadoc.jar.asc >> log4j-flume-ng-2.0-beta6.jar >> log4j-flume-ng-2.0-beta6-tests.jar.asc >> log4j-flume-ng-2.0-beta6-tests.jar >> log4j-flume-ng-2.0-beta6-javadoc.jar >> log4j-flume-ng-2.0-beta6.pom.asc >> log4j-flume-ng-2.0-beta6.pom >> log4j-to-slf4j-2.0-beta6-sources.jar >> log4j-to-slf4j-2.0-beta6-sources.jar.asc >> log4j-to-slf4j-2.0-beta6-javadoc.jar >> log4j-to-slf4j-2.0-beta6.jar >> log4j-to-slf4j-2.0-beta6.jar.asc >> log4j-to-slf4j-2.0-beta6.pom >> log4j-to-slf4j-2.0-beta6-javadoc.jar.asc >> log4j-to-slf4j-2.0-beta6.pom.asc >> log4j-api-2.0-beta6.jar.asc >> log4j-api-2.0-beta6-sources.jar >> log4j-api-2.0-beta6-javadoc.jar >> log4j-api-2.0-beta6.pom.asc >> log4j-api-2.0-beta6-javadoc.jar.asc >> log4j-api-2.0-beta6.pom >> log4j-api-2.0-beta6.jar >> log4j-api-2.0-beta6-sources.jar.asc >> log4j-core-2.0-beta6.jar >> log4j-core-2.0-beta6-sources.jar >> log4j-core-2.0-beta6-sources.jar.asc >> log4j-core-2.0-beta6-tests.jar >> log4j-core-2.0-beta6-javadoc.jar.asc >> log4j-core-2.0-beta6.jar.asc >> log4j-core-2.0-beta6-javadoc.jar >> log4j-core-2.0-beta6.pom.asc >> log4j-core-2.0-beta6-tests.jar.asc >> log4j-core-2.0-beta6.pom >> log4j-2.0-beta6.pom.asc >> log4j-2.0-beta6.pom > --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org