https://issues.apache.org/bugzilla/show_bug.cgi?id=54472
Bug ID: 54472
Summary: JspcServletContext need to set ClassLoader
Product: Tomcat 7
Version: 7.0.35
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Jasper
Assignee: [email protected]
Reporter: [email protected]
Classification: Unclassified
Now, JspcServletContext
@Override
public ClassLoader getClassLoader() {
return null;
}
i.e. no classloader is set.
This maybe throw NPE.
Actually, by rev. 1431228,
private void init(ErrorDispatcher err) throws JasperException {
if (initialized)
return;
tagPlugins = new HashMap<String, TagPlugin>();
Enumeration<URL> urls = null;
try {
urls = ctxt.getClassLoader().getResources(
META_INF_JASPER_TAG_PLUGINS_XML);
} catch (IOException ioe) {
throw new JasperException(ioe);
}
....
}
threw NPE, because ctxt.getClassLoader() is null.
So, we need to set the classloader in JspServletContext.
I resolved this issue by adding setter of classloader in JspServletContext and
setting classloader in JspC like below.
protected void processFile(String file)
throws JasperException
{
....
originalClassLoader =
Thread.currentThread().getContextClassLoader();
if( loader==null ) {
initClassLoader( clctxt );
context.setClassLoader(loader); <-- set classloader
}
}
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]