Return-Path: X-Original-To: apmail-logging-log4j-dev-archive@www.apache.org Delivered-To: apmail-logging-log4j-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 23BEFF82A for ; Thu, 9 May 2013 16:13:16 +0000 (UTC) Received: (qmail 46253 invoked by uid 500); 9 May 2013 16:13:16 -0000 Delivered-To: apmail-logging-log4j-dev-archive@logging.apache.org Received: (qmail 46196 invoked by uid 500); 9 May 2013 16:13:15 -0000 Mailing-List: contact log4j-dev-help@logging.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Log4J Developers List" Reply-To: "Log4J Developers List" Delivered-To: mailing list log4j-dev@logging.apache.org Received: (qmail 46150 invoked by uid 99); 9 May 2013 16:13:15 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 May 2013 16:13:15 +0000 Date: Thu, 9 May 2013 16:13:15 +0000 (UTC) From: "Remko Popma (JIRA)" To: log4j-dev@logging.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (LOG4J2-245) EmptyStackException when logging error through JCL bridge MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/LOG4J2-245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13653031#comment-13653031 ] Remko Popma commented on LOG4J2-245: ------------------------------------ Same question as Nick... Will the #resolvePackageData method still work correctly if the Stack is empty (after we add defensive code to prevent the EmptyStackException)? I don't understand the code well enough to answer that question. > EmptyStackException when logging error through JCL bridge > --------------------------------------------------------- > > Key: LOG4J2-245 > URL: https://issues.apache.org/jira/browse/LOG4J2-245 > Project: Log4j 2 > Issue Type: Bug > Components: Core, JCL Bridge > Affects Versions: 2.0-beta5, 2.0-beta6 > Reporter: Nick Williams > Priority: Blocker > > Possibly affects earlier versions, too, but I did not check. > beta5 and beta6 are both unusable with Spring Framework. 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. > 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.(ThrowableProxy.java:71) > at org.apache.logging.log4j.core.impl.Log4jLogEvent.(Log4jLogEvent.java:110) > at org.apache.logging.log4j.core.impl.Log4jLogEvent.(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) > > > > > pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> > > filePattern="../logs/application-%d{MM-dd-yyyy}-%i.log"> > > %d{HH:mm:ss.SSS} [%t] %X{id} %X{username} %-5level %c{36} %l: %msg%n > > > > > > > > > > > > > > > > > -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org For additional commands, e-mail: log4j-dev-help@logging.apache.org