Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 91713 invoked from network); 16 Mar 2006 01:08:23 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 16 Mar 2006 01:08:23 -0000 Received: (qmail 19655 invoked by uid 500); 16 Mar 2006 01:08:20 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 19585 invoked by uid 500); 16 Mar 2006 01:08:20 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list dev@geronimo.apache.org Received: (qmail 19573 invoked by uid 99); 16 Mar 2006 01:08:20 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 15 Mar 2006 17:08:20 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [192.87.106.226] (HELO ajax.apache.org) (192.87.106.226) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 15 Mar 2006 17:08:19 -0800 Received: from ajax (localhost.localdomain [127.0.0.1]) by ajax.apache.org (Postfix) with ESMTP id 74F6ED49FD for ; Thu, 16 Mar 2006 01:07:58 +0000 (GMT) Message-ID: <1890794987.1142471278466.JavaMail.jira@ajax> Date: Thu, 16 Mar 2006 01:07:58 +0000 (GMT) From: "John Sisson (JIRA)" To: dev@geronimo.apache.org Subject: [jira] Closed: (GERONIMO-609) geronimo.log can be closed whilst distributing an EAR if the application uses log4j In-Reply-To: <1158621951.1110715313381.JavaMail.jira@ajax.apache.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N [ http://issues.apache.org/jira/browse/GERONIMO-609?page=all ] John Sisson closed GERONIMO-609: -------------------------------- Fix Version: 1.1 (was: 1.2) Resolution: Won't Fix This problem can be avoided by using the following in an application's deployment plan: org.apache.log4j So the application can use its own instance of log4j. > geronimo.log can be closed whilst distributing an EAR if the application uses log4j > ----------------------------------------------------------------------------------- > > Key: GERONIMO-609 > URL: http://issues.apache.org/jira/browse/GERONIMO-609 > Project: Geronimo > Type: Bug > Components: deployment > Reporter: John Sisson > Assignee: John Sisson > Fix For: 1.1 > > The following stack trace shows the geronimo.log file being closed as a result of static code being executed in a session bean whilst the configuration is being stored. > The EAR has a geronimo-application.xml file that contains a dependencies element that adds log4j as a dependency, to ensure the application (when it initialises its logging) does not interfere with geronimo's logging. Well, that was the plan, but I wasn't expecting to see the application's code being executed without using the dependencies it was configured with. > Here is the stack trace: > System Thread [RMI TCP Connection(7)-172.21.35.170] (Suspended (breakpoint at line 171 in org.apache.log4j.FileAppender)) > org.apache.log4j.RollingFileAppender(org.apache.log4j.FileAppender).closeFile() line: 171 > org.apache.log4j.RollingFileAppender(org.apache.log4j.FileAppender).reset() line: 302 > org.apache.log4j.RollingFileAppender(org.apache.log4j.WriterAppender).close() line: 195 > org.apache.log4j.helpers.AppenderAttachableImpl.removeAllAppenders() line: 132 > org.apache.log4j.spi.RootCategory(org.apache.log4j.Category).removeAllAppenders() line: 879 > org.apache.log4j.PropertyConfigurator.parseCategory(java.util.Properties, org.apache.log4j.Logger, java.lang.String, java.lang.String, java.lang.String) line: 594 > org.apache.log4j.PropertyConfigurator.configureRootCategory(java.util.Properties, org.apache.log4j.spi.LoggerRepository) line: 500 > org.apache.log4j.PropertyConfigurator.doConfigure(java.util.Properties, org.apache.log4j.spi.LoggerRepository) line: 406 > org.apache.log4j.PropertyConfigurator.configure(java.util.Properties) line: 340 > > com.blah.server.ejb.ServerConfigPvtBean.() line: 93 > java.io.ObjectStreamClass.hasStaticInitializer(java.lang.Class) line: not available [native method] > java.io.ObjectStreamClass.computeDefaultSUID(java.lang.Class) line: 1557 > java.io.ObjectStreamClass.access$100(java.lang.Class) line: 47 > java.io.ObjectStreamClass$1.run() line: 173 > java.security.AccessController.doPrivileged(java.security.PrivilegedAction) line: not available [native method] > java.io.ObjectStreamClass.getSerialVersionUID() line: 170 > java.io.ObjectStreamClass.writeNonProxy(java.io.ObjectOutputStream) line: 557 > java.io.ObjectOutputStream.writeClassDescriptor(java.io.ObjectStreamClass) line: 591 > java.io.ObjectOutputStream.writeNonProxyDesc(java.io.ObjectStreamClass, boolean) line: 1142 > java.io.ObjectOutputStream.writeClassDesc(java.io.ObjectStreamClass, boolean) line: 1100 > java.io.ObjectOutputStream.writeClass(java.lang.Class, boolean) line: 1082 > java.io.ObjectOutputStream.writeObject0(java.lang.Object, boolean) line: 996 > java.io.ObjectOutputStream.defaultWriteFields(java.lang.Object, java.io.ObjectStreamClass) line: 1332 > java.io.ObjectOutputStream.writeSerialData(java.lang.Object, java.io.ObjectStreamClass) line: 1304 > java.io.ObjectOutputStream.writeOrdinaryObject(java.lang.Object, java.io.ObjectStreamClass, boolean) line: 1247 > java.io.ObjectOutputStream.writeObject0(java.lang.Object, boolean) line: 1052 > java.io.ObjectOutputStream.writeArray(java.lang.Object, java.io.ObjectStreamClass, boolean) line: 1224 > java.io.ObjectOutputStream.writeObject0(java.lang.Object, boolean) line: 1050 > java.io.ObjectOutputStream.defaultWriteFields(java.lang.Object, java.io.ObjectStreamClass) line: 1332 > java.io.ObjectOutputStream.writeSerialData(java.lang.Object, java.io.ObjectStreamClass) line: 1304 > java.io.ObjectOutputStream.writeOrdinaryObject(java.lang.Object, java.io.ObjectStreamClass, boolean) line: 1247 > java.io.ObjectOutputStream.writeObject0(java.lang.Object, boolean) line: 1052 > java.io.ObjectOutputStream.writeObject(java.lang.Object) line: 278 > org.apache.geronimo.gbean.GBeanData.writeExternal(java.io.ObjectOutput) line: 132 > org.apache.geronimo.kernel.config.Configuration.storeGBeans(org.apache.geronimo.gbean.GBeanData[]) line: 422 > org.apache.geronimo.j2ee.deployment.EARContext(org.apache.geronimo.deployment.DeploymentContext).saveConfiguration() line: 490 > org.apache.geronimo.j2ee.deployment.EARContext(org.apache.geronimo.deployment.DeploymentContext).close() line: 452 > org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(java.lang.Object, java.util.jar.JarFile, java.io.File) line: 359 > org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.invoke(int, java.lang.Object, java.lang.Object[]) line: not available > net.sf.cglib.reflect.FastMethod.invoke(java.lang.Object, java.lang.Object[]) line: 53 > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(java.lang.Object, java.lang.Object[]) line: 38 > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(java.lang.Object, java.lang.Object[]) line: 118 > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(int, java.lang.Object[]) line: 710 > org.apache.geronimo.gbean.runtime.RawInvoker.invoke(int, java.lang.Object[]) line: 57 > org.apache.geronimo.kernel.proxy.RawOperationInvoker.invoke(javax.management.ObjectName, java.lang.Object[]) line: 36 > org.apache.geronimo.kernel.proxy.ProxyMethodInterceptor.intercept(java.lang.Object, java.lang.reflect.Method, java.lang.Object[], net.sf.cglib.proxy.MethodProxy) line: 92 > org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$661d6fa5.buildConfiguration(java.lang.Object, java.util.jar.JarFile, java.io.File) line: not available > org.apache.geronimo.deployment.Deployer.deploy(java.io.File, java.io.File, java.io.File, boolean, java.lang.String, java.lang.String, java.lang.String) line: 172 > org.apache.geronimo.deployment.Deployer.deploy(java.io.File, java.io.File) line: 85 > org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invoke(int, java.lang.Object, java.lang.Object[]) line: not available > net.sf.cglib.reflect.FastMethod.invoke(java.lang.Object, java.lang.Object[]) line: 53 > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(java.lang.Object, java.lang.Object[]) line: 38 > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(java.lang.Object, java.lang.Object[]) line: 118 > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(java.lang.String, java.lang.Object[], java.lang.String[]) line: 745 > org.apache.geronimo.kernel.Kernel.invoke(javax.management.ObjectName, java.lang.String, java.lang.Object[], java.lang.String[]) line: 299 > org.apache.geronimo.kernel.KernelGBean.invoke(javax.management.ObjectName, java.lang.String, java.lang.Object[], java.lang.String[]) line: 121 > org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(int, java.lang.Object, java.lang.Object[]) line: not available > net.sf.cglib.reflect.FastMethod.invoke(java.lang.Object, java.lang.Object[]) line: 53 > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(java.lang.Object, java.lang.Object[]) line: 38 > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(java.lang.Object, java.lang.Object[]) line: 118 > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(java.lang.String, java.lang.Object[], java.lang.String[]) line: 745 > org.apache.geronimo.kernel.Kernel.invoke(javax.management.ObjectName, java.lang.String, java.lang.Object[], java.lang.String[]) line: 299 > org.apache.geronimo.kernel.jmx.MBeanServerDelegate.invoke(javax.management.ObjectName, java.lang.String, java.lang.Object[], java.lang.String[]) line: 117 > mx4j.remote.rmi.RMIConnectionInvoker.invoke(javax.management.ObjectName, java.lang.String, java.rmi.MarshalledObject, java.lang.String[], javax.security.auth.Subject) line: 219 > sun.reflect.GeneratedMethodAccessor74.invoke(java.lang.Object, java.lang.Object[]) line: not available > sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 25 > java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) line: 324 > mx4j.remote.rmi.RMIConnectionSubjectInvoker(mx4j.remote.rmi.RMIConnectionProxy).invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 34 > mx4j.remote.rmi.RMIConnectionSubjectInvoker.chain(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 99 > mx4j.remote.rmi.RMIConnectionSubjectInvoker.access$000(mx4j.remote.rmi.RMIConnectionSubjectInvoker, java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 31 > mx4j.remote.rmi.RMIConnectionSubjectInvoker$1.run() line: 90 > java.security.AccessController.doPrivileged(java.security.PrivilegedExceptionAction, java.security.AccessControlContext) line: not available [native method] > javax.security.auth.Subject.doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedExceptionAction, java.security.AccessControlContext) line: 500 > mx4j.remote.MX4JRemoteUtils.subjectInvoke(javax.security.auth.Subject, javax.security.auth.Subject, java.security.AccessControlContext, java.util.Map, java.security.PrivilegedExceptionAction) line: 163 > mx4j.remote.rmi.RMIConnectionSubjectInvoker.subjectInvoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[], javax.security.auth.Subject) line: 86 > mx4j.remote.rmi.RMIConnectionSubjectInvoker.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) line: 80 > $Proxy0.invoke(javax.management.ObjectName, java.lang.String, java.rmi.MarshalledObject, java.lang.String[], javax.security.auth.Subject) line: not available > javax.management.remote.rmi.RMIConnectionImpl.invoke(javax.management.ObjectName, java.lang.String, java.rmi.MarshalledObject, java.lang.String[], javax.security.auth.Subject) line: 221 > sun.reflect.GeneratedMethodAccessor74.invoke(java.lang.Object, java.lang.Object[]) line: not available > sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 25 > java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) line: 324 > sun.rmi.server.UnicastServerRef2(sun.rmi.server.UnicastServerRef).dispatch(java.rmi.Remote, java.rmi.server.RemoteCall) line: 261 > sun.rmi.transport.Transport$1.run() line: 148 > java.security.AccessController.doPrivileged(java.security.PrivilegedExceptionAction, java.security.AccessControlContext) line: not available [native method] > sun.rmi.transport.tcp.TCPTransport(sun.rmi.transport.Transport).serviceCall(java.rmi.server.RemoteCall) line: 144 > sun.rmi.transport.tcp.TCPTransport.handleMessages(sun.rmi.transport.Connection, boolean) line: 460 > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run() line: 701 > java.lang.Thread.run() line: 534 -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira