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 2001/04/06 21:31:20 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core ApplicationContext.java ContainerBase.java
remm 01/04/06 12:31:20
Modified: catalina/src/share/org/apache/catalina/core
ApplicationContext.java ContainerBase.java
Log:
- Fix for bug 1219. It makes the URLs generated more unique, to avoid confusing
the JDK's JAR URL cache.
Revision Changes Path
1.19 +20 -14 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationContext.java
Index: ApplicationContext.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationContext.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- ApplicationContext.java 2001/03/22 00:51:17 1.18
+++ ApplicationContext.java 2001/04/06 19:31:17 1.19
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationContext.java,v 1.18 2001/03/22 00:51:17 remm Exp $
- * $Revision: 1.18 $
- * $Date: 2001/03/22 00:51:17 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationContext.java,v 1.19 2001/04/06 19:31:17 remm Exp $
+ * $Revision: 1.19 $
+ * $Date: 2001/04/06 19:31:17 $
*
* ====================================================================
*
@@ -111,7 +111,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
- * @version $Revision: 1.18 $ $Date: 2001/03/22 00:51:17 $
+ * @version $Revision: 1.19 $ $Date: 2001/04/06 19:31:17 $
*/
public final class ApplicationContext
@@ -160,15 +160,17 @@
implements PrivilegedExceptionAction {
private String path;
+ private String host;
private DirContext resources;
- PrivilegedGetResource(String path, DirContext resources) {
+ PrivilegedGetResource(String host, String path, DirContext resources) {
+ this.host = host;
this.path = path;
this.resources = resources;
}
public Object run() throws Exception {
- return new URL("jndi", null, 0, path,
+ return new URL("jndi", host, 0, path,
new DirContextURLStreamHandler(resources));
}
@@ -185,7 +187,6 @@
* @param context The associated Context instance
*/
public ApplicationContext(String basePath, StandardContext context) {
-
super();
this.context = context;
this.basePath = basePath;
@@ -495,7 +496,8 @@
return (null);
// Construct a RequestDispatcher to process this request
- HttpServletRequest hrequest = (HttpServletRequest) request.getRequest();
+ HttpServletRequest hrequest =
+ (HttpServletRequest) request.getRequest();
return (RequestDispatcher) new ApplicationDispatcher(wrapper,
hrequest.getServletPath(),
hrequest.getPathInfo(),
@@ -516,22 +518,26 @@
* @exception MalformedURLException if the path is not given
* in the correct form
*/
- public URL getResource(String path) throws MalformedURLException {
+ public URL getResource(String path)
+ throws MalformedURLException {
DirContext resources = context.getResources();
if (resources != null) {
+ String fullPath = context.getName() + path;
+ String hostName = context.getParent().getName();
try {
resources.lookup(path);
if( System.getSecurityManager() != null ) {
try {
PrivilegedGetResource dp =
- new PrivilegedGetResource(path,resources);
+ new PrivilegedGetResource
+ (hostName, fullPath, resources);
return (URL)AccessController.doPrivileged(dp);
} catch( PrivilegedActionException pe) {
throw pe.getException();
}
} else {
- return new URL("jndi", null, 0, path,
- new DirContextURLStreamHandler(resources));
+ return new URL("jndi", hostName, 0, fullPath,
+ new DirContextURLStreamHandler(resources));
}
} catch (Exception e) {
//e.printStackTrace();
@@ -805,8 +811,8 @@
(ServletContextAttributeListener) listeners[i];
try {
if (replaced) {
- context.fireContainerEvent("beforeContextAttributeReplaced",
- listener);
+ context.fireContainerEvent
+ ("beforeContextAttributeReplaced", listener);
listener.attributeReplaced(event);
context.fireContainerEvent("afterContextAttributeReplaced",
listener);
1.9 +9 -6 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ContainerBase.java
Index: ContainerBase.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ContainerBase.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ContainerBase.java 2001/01/23 05:05:46 1.8
+++ ContainerBase.java 2001/04/06 19:31:18 1.9
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ContainerBase.java,v 1.8 2001/01/23 05:05:46 remm Exp $
- * $Revision: 1.8 $
- * $Date: 2001/01/23 05:05:46 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ContainerBase.java,v 1.9 2001/04/06 19:31:18 remm Exp $
+ * $Revision: 1.9 $
+ * $Date: 2001/04/06 19:31:18 $
*
* ====================================================================
*
@@ -153,7 +153,7 @@
* class comments of the implementation class.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.8 $ $Date: 2001/01/23 05:05:46 $
+ * @version $Revision: 1.9 $ $Date: 2001/04/06 19:31:18 $
*/
public abstract class ContainerBase
@@ -680,8 +680,11 @@
DirContext oldResources = this.resources;
if (oldResources == resources)
return;
- this.resources = new ProxyDirContext(new Hashtable(), resources);
-
+ Hashtable env = new Hashtable();
+ if (getParent() != null)
+ env.put(ProxyDirContext.HOST, getParent().getName());
+ env.put(ProxyDirContext.CONTEXT, getName());
+ this.resources = new ProxyDirContext(env, resources);
// Report this property change to interested listeners
support.firePropertyChange("resources", oldResources, this.resources);