https://bz.apache.org/bugzilla/show_bug.cgi?id=59369
Bug ID: 59369
Summary: classloader getResourceAsStream throws exception
instead of returning NULL.
Product: Tomcat 9
Version: 9.0.0.M4
Hardware: PC
OS: Mac OS X 10.1
Status: NEW
Severity: major
Priority: P2
Component: Catalina
Assignee: [email protected]
Reporter: [email protected]
When using JavaMail and Tomcat 9.0.0.M4
JavaMail checks for META-INF/javamail.providers and
META-INF/javamail.address.map resources on the class loader of the
javax.mail.Authenticator class. If the resources do not exist, a null pointer
exception is thrown instead of returning null.
http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#getResourceAsStream(java.lang.String)
Session.getResourceAsStream only catches a PrivilegedActionException. This
causes Session.getInstance to fail.
A fix/workaround involves either
1. putting empty META-INF entries in the jar,
or
2. catching the NPE in Session.getResourceAsStream and re-throwing it as an IO
exception.
java.lang.NullPointerException
at
org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream(WebappClassLoaderBase.java:1089)
at java.lang.Class.getResourceAsStream(Class.java:2223)
at javax.mail.Session$4.run(Session.java:1232)
at javax.mail.Session$4.run(Session.java:1230)
at java.security.AccessController.doPrivileged(Native Method)
at javax.mail.Session.getResourceAsStream(Session.java:1229)
at javax.mail.Session.loadResource(Session.java:1123)
at javax.mail.Session.loadAllResources(Session.java:1203)
at javax.mail.Session.loadProviders(Session.java:934)
at javax.mail.Session.<init>(Session.java:224)
at javax.mail.Session.getInstance(Session.java:251)
JavaMail Workaround
try {
return AccessController.doPrivileged(
new PrivilegedExceptionAction<InputStream>() {
public InputStream run() throws IOException {
try {
return c.getResourceAsStream(name);
} catch (Exception e) {
throw new IOException(e);
}
}
}
);
} catch (PrivilegedActionException e) {
throw (IOException)e.getException();
}
}
filed on JavaMail as well
https://kenai.com/bugzilla/show_bug.cgi?id=7356
--
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]