You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2002/05/31 04:55:21 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming ContextBindings.java
remm 2002/05/30 19:55:21
Modified: catalina/src/share/org/apache/naming ContextBindings.java
Log:
- Make the JNDI context available from webapp created CL (as long as one
of the parents in the hierarchy is the webapp CL).
- Patch submitted by David Haraburda <david-tomcat at haraburda.com>
Revision Changes Path
1.7 +31 -18 jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/ContextBindings.java
Index: ContextBindings.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/ContextBindings.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ContextBindings.java 16 Apr 2002 00:42:10 -0000 1.6
+++ ContextBindings.java 31 May 2002 02:55:21 -0000 1.7
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/ContextBindings.java,v 1.6 2002/04/16 00:42:10 remm Exp $
- * $Revision: 1.6 $
- * $Date: 2002/04/16 00:42:10 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/ContextBindings.java,v 1.7 2002/05/31 02:55:21 remm Exp $
+ * $Revision: 1.7 $
+ * $Date: 2002/05/31 02:55:21 $
*
* ====================================================================
*
@@ -76,7 +76,7 @@
* </ul>
*
* @author Remy Maucherat
- * @version $Revision: 1.6 $ $Date: 2002/04/16 00:42:10 $
+ * @version $Revision: 1.7 $ $Date: 2002/05/31 02:55:21 $
*/
public class ContextBindings {
@@ -361,12 +361,16 @@
*/
public static Context getClassLoader()
throws NamingException {
- Context context = (Context) clBindings.get
- (Thread.currentThread().getContextClassLoader());
- if (context == null)
- throw new NamingException
- (sm.getString("contextBindings.noContextBoundToCL"));
- return context;
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ Context context = null;
+ do {
+ context = (Context) clBindings.get(cl);
+ if (context != null) {
+ return context;
+ }
+ } while ((cl = cl.getParent()) != null);
+ throw new NamingException
+ (sm.getString("contextBindings.noContextBoundToCL"));
}
@@ -375,12 +379,16 @@
*/
static Object getClassLoaderName()
throws NamingException {
- Object name =
- clNameBindings.get(Thread.currentThread().getContextClassLoader());
- if (name == null)
- throw new NamingException
- (sm.getString("contextBindings.noContextBoundToCL"));
- return name;
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ Object name = null;
+ do {
+ name = clNameBindings.get(cl);
+ if (name != null) {
+ return name;
+ }
+ } while ((cl = cl.getParent()) != null);
+ throw new NamingException
+ (sm.getString("contextBindings.noContextBoundToCL"));
}
@@ -388,8 +396,13 @@
* Tests if current class loader is bound to a context.
*/
public static boolean isClassLoaderBound() {
- return (clBindings.containsKey
- (Thread.currentThread().getContextClassLoader()));
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ do {
+ if (clBindings.containsKey(cl)) {
+ return true;
+ }
+ } while ((cl = cl.getParent()) != null);
+ return false;
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>