All,

I have been looking at a couple of bugs in the admin app and have come across a
problem with creating new hosts and contexts. The scenario is:

1. Create new host
2. Create new root context for the new host
3. Try to access jsp in new root context

This gives causes the "WebappClassLoader: Lifecycle error : CL stopped" error.

AFAICT the problem occurs during step 2.
- The admin app creates the conext
- The context inherits a classloader from the host
- The context starts the jsp servlet which creates a JspRuntimeContext
- JspRuntimeContext retains a reference to the context classloader
- The admin app creates a classloader for the context and sets it
- The old context classloader is stopped and the new one started
- Subsequent requests for jsps fail because the context classloader referred to
by JspRuntimeContext has been stopped

Restarting tomcat fixes this issue as the classloaders are set before the
context is started.

Options for fixing this are (I haven't look at the code for any of these):
- Do nothing and require the users to restart
- Change the admin app to restart the context after changing the loader
- Modify jasper to check the status of the classloader
- Separate the creating and starting of components through mbeans

I don't really like any of these options. Does anyone have any better ideas?

Cheers,

Mark



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

Reply via email to