DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=41059>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=41059





------- Additional Comments From [EMAIL PROTECTED]  2007-05-04 09:20 -------
This is causing a problem for me also and I think requires a fix other than the 
patch given here. I get the following stack trace which shows that the error 
occurs on  Tomcat's clean up thread and therefore should be addressed with a 
more permanent fix.

The problem arises because Tomcat tries to null a static/final field of a type 
that has not yet been loaded, which causes the class initializer to run. In my 
case, that initializer fetched a log from Commons Logging, which had 
(presumably) already been "cleaned up" by Tomcat, and threw an NPE.


[FATAL] LoggingInit - Failed to obtain logger returning simple logger for 
CONFIG.com.commons.monitoring.util.Instrument 
<org.apache.commons.logging.LogConfigurationException: 
java.lang.NullPointerException (Caused by java.lang.NullPointerException)
>org.apache.commons.logging.LogConfigurationException: 
java.lang.NullPointerException (Caused by java.lang.NullPointerException)
        at org.apache.commons.logging.impl.LogFactoryImpl.newInstance
(LogFactoryImpl.java:538)
        at org.apache.commons.logging.impl.LogFactoryImpl.getInstance
(LogFactoryImpl.java:235)
        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:370)
        at com.commons.logging.LoggingInit.getLog(LoggingInit.java:334)
        at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.commons.catalog.CatalogUtils.getLog(CatalogUtils.java:75)
        at com.commons.catalog.GenericTrace.<init>(GenericTrace.java:279)
        at com.commons.catalog.SimpleTrace.<init>(SimpleTrace.java:34)
        at com.commons.monitoring.util.Instrument.<clinit>
(AbstractRuntimeInstrument.java:44)
        at sun.misc.Unsafe.ensureClassInitialized(Native Method)
        at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(Unknown 
Source)
        at sun.reflect.ReflectionFactory.newFieldAccessor(Unknown Source)
        at java.lang.reflect.Field.acquireFieldAccessor(Unknown Source)
        at java.lang.reflect.Field.getFieldAccessor(Unknown Source)
        at java.lang.reflect.Field.get(Unknown Source)
        at org.apache.catalina.loader.WebappClassLoader.clearReferences
(WebappClassLoader.java:1612)
        at org.apache.catalina.loader.WebappClassLoader.stop
(WebappClassLoader.java:1496)
        at org.apache.catalina.loader.WebappLoader.stop(WebappLoader.java:734)
        at org.apache.catalina.core.StandardContext.stop
(StandardContext.java:4398)
        at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1067)
        at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1067)
        at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:448)
        at org.apache.catalina.core.StandardService.stop
(StandardService.java:510)
        at org.apache.catalina.core.StandardServer.stop(StandardServer.java:734)
        at org.apache.catalina.startup.Catalina.stop(Catalina.java:602)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:577)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Caused by: java.lang.NullPointerException


Upgrading Commons Logging to v1.1 on Tomcat's server classpath removes the NPE 
but the problem isn't really fixed.

Possible solution is to use two phases: first collect all the non-null Fields 
(Field.get will cause the declared type to be loaded) then null them.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to