On Fri, May 1, 2009 at 2:30 AM, Ian Boston <i...@tfd.co.uk> wrote:
> Have you tried setting the context classloader to the webapp classloader
> around that method call ?

I don't see a method call to fix, unfortunately.  This happens when
jetty tries to compile a jsp, there is no shindig code in the stack
until too late.

I think this is the flow.  First:
- jetty starts shindig with webapp class loader
- shindig loads ExpressionFactory and ExpressionFactoryImpl with web
app class loader

Later:
- jetty starts JSP compiler with context class loader (system class
loader, maybe?)
***bug*** load ExpressionFactory with context class loader
- switch to web app class loader
- JSP compiler calls ExpressionFactory.newInstance
- newInstance finds ExpressionFactoryImpl from web app class loader
- then there's a cast to the wrong version of ExpressionFactory.class,
and we die.

If I'm right, I think we've found a jetty bug.  I might be wrong.  I
haven't found the right version of the jetty code to step through to
see what's going on.

Reply via email to