Patches item #420445, was updated on 2001-05-01 06:19
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=376687&aid=420445&group_id=22866

Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Nobody/Anonymous (nobody)
Assigned to: Nobody/Anonymous (nobody)
Summary: Fix chaining of tomcat classloaders

Initial Comment:
I think there is a problem with
ContextClassLoaderInterceptor; when the
embedded tomcat service starts and existing contexts
are initialized, the tomcat context class loaders get
linked together in a complex (and broken!
way).

In ContextClassLoaderInterceptor.contextInit in the
current version (1.5
according to CVS), the contextInit method is:

  public void contextInit( Context context) 
      throws TomcatException 
   {
     
((AdaptiveClassLoader)context.getServletLoader().getParentLoader()).setParent(Thread.currentThread().getContextClassLoader());
     
Thread.currentThread().setContextClassLoader(((ClassLoader)context.getServletLoader().getClassLoader()));
   }

This sets the parent loader of the servlet context just
fine, but leaves the
context class loader changed.

Existing tomcat contexts are initialized one by one and
this leaves the tomcat
context class loaders all chained together, which leads
to some very strange
effects.

The ideal solution might be to modify the Tomcat
ContextManager class to reset
the thread context class loader after each context is
initialised.  I wanted
to avoid changing tomcat so the only solution I could
find was to modify
ContextClassLoaderInterceptor.


----------------------------------------------------------------------

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=376687&aid=420445&group_id=22866

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to