You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ri...@apache.org on 2006/05/03 15:28:46 UTC
svn commit: r399294 -
/geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/javax/mail/Session.java
Author: rickmcguire
Date: Wed May 3 06:28:41 2006
New Revision: 399294
URL: http://svn.apache.org/viewcvs?rev=399294&view=rev
Log:
GERONIMO-1973 javamail Session class using wrong classloader search sequence for resolving providers.
Modified:
geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/javax/mail/Session.java
Modified: geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/javax/mail/Session.java
URL: http://svn.apache.org/viewcvs/geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/javax/mail/Session.java?rev=399294&r1=399293&r2=399294&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/javax/mail/Session.java (original)
+++ geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/javax/mail/Session.java Wed May 3 06:28:41 2006
@@ -465,7 +465,7 @@
return info;
}
- private static Map getAddressMap() {
+ private Map getAddressMap() {
ClassLoader cl = getClassLoader();
Map addressMap = (Map)addressMapsByClassLoader.get(cl);
if (addressMap == null) {
@@ -475,10 +475,24 @@
}
- private static ClassLoader getClassLoader() {
+ /**
+ * Resolve a class loader used to resolve context resources. The
+ * class loader used is either a current thread context class
+ * loader (if set), the class loader used to load an authenticator
+ * we've been initialized with, or the class loader used to load
+ * this class instance (which may be a subclass of Session).
+ *
+ * @return The class loader used to load resources.
+ */
+ private ClassLoader getClassLoader() {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
if (cl == null) {
- cl = Session.class.getClassLoader();
+ if (authenticator != null) {
+ cl = authenticator.getClass().getClassLoader();
+ }
+ else {
+ cl = this.getClass().getClassLoader();
+ }
}
return cl;
}