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





--- Comment #12 from Mauro Molinari <mauro...@tiscali.it>  2009-01-13 01:57:25 
PST ---
Could this bug be taken into consideration?

In my case, I have the symptoms outlined in bug #43867 and this is caused by
the following situation (I'm using Tomcat 5.5.26):

- WebappClassLoader.clearReferences() at line 1617 inspects some static fields
in order to set them to null afterwards, using reflection
- one of these fields seems to be a field of an Axis2 class (I have an Axis2
Servlet with load-on-startup configured in my web.xml); field.get(null) causes
the VM to pass through sun.misc.Unsafe.ensureClassInitialized(Class) (in other
words: Tomcat is trying to inspect a static field of a class that hasn't ever
be initialized before)
- that method of Sun implementation causes specifically
org.apache.axis2.context.OperationContext to be initialized; this class has a
static field declared as:
private static final Log log = LogFactory.getLog(OperationContext.class);
- this static declaration causes a new Log4JLogger to be created; this is still
in charge of the WebappClassLoader, so when Log4JLogger constructor calls
getLogger(), a call to org.apache.log4j.LogManager.getLoggerRepository() is
made
- however, at this time the static field repositorySelector is null, probabily
because it has been set to null by a previous iteration of the same loop that
is in running in WebappClassLoader.clearReferences() (this is just a
hypothesis)

So, from what I have said, I think that either:
- WebappClassLoader.clearReferences() should skip to inspect fields of classes
that have not been initialized yet, otherwise they will be initialized at that
point (and it might be too late!)
- I didn't look at Curt's patch, but I assume he worked on this issue and he
followed a 2-pass approach that also solves it

I hope this helps in any way.
Mauro.


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

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to