You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by cr...@apache.org on 2002/02/27 02:17:01 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources BaseDirContext.java FileDirContext.java ProxyDirContext.java WARDirContext.java
craigmcc 02/02/26 17:17:01
Modified: catalina/src/share/org/apache/catalina/core
StandardContext.java StandardHostDeployer.java
catalina/src/share/org/apache/naming/resources
BaseDirContext.java FileDirContext.java
ProxyDirContext.java WARDirContext.java
Log:
Fix the process of undeploying a web applcation (in StandardContext.stop())
so that, if the application is deployed from a WAR file instead of an
unpacked directory, the WAR file is actually closed. Otherwise, you run into
problems trying to redeploy a WAR file from the same pathname (on Unix, you
see the old webapp again because the old WAR is still open, on Windows you
get errors trying to write onto a WAR file open for reading).
Revision Changes Path
1.98 +24 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java
Index: StandardContext.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -r1.97 -r1.98
--- StandardContext.java 20 Feb 2002 08:29:56 -0000 1.97
+++ StandardContext.java 27 Feb 2002 01:17:00 -0000 1.98
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v 1.97 2002/02/20 08:29:56 remm Exp $
- * $Revision: 1.97 $
- * $Date: 2002/02/20 08:29:56 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v 1.98 2002/02/27 01:17:00 craigmcc Exp $
+ * $Revision: 1.98 $
+ * $Date: 2002/02/27 01:17:00 $
*
* ====================================================================
*
@@ -98,9 +98,10 @@
import org.apache.naming.ResourceRef;
import org.apache.naming.ResourceEnvRef;
import org.apache.naming.TransactionRef;
+import org.apache.naming.resources.BaseDirContext;
import org.apache.naming.resources.FileDirContext;
+import org.apache.naming.resources.ProxyDirContext;
import org.apache.naming.resources.WARDirContext;
-import org.apache.naming.resources.BaseDirContext;
import org.apache.naming.resources.DirContextURLStreamHandler;
import org.apache.catalina.Container;
import org.apache.catalina.ContainerListener;
@@ -146,7 +147,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
- * @version $Revision: 1.97 $ $Date: 2002/02/20 08:29:56 $
+ * @version $Revision: 1.98 $ $Date: 2002/02/27 01:17:00 $
*/
public class StandardContext
@@ -3565,6 +3566,24 @@
if ((loader != null) && (loader instanceof Lifecycle)) {
((Lifecycle) loader).stop();
}
+
+ // Release our resources DirContext
+ DirContext dirContext = resources;
+ if ((dirContext != null) &&
+ (dirContext instanceof ProxyDirContext)) {
+ dirContext = ((ProxyDirContext) dirContext).getDirContext();
+ }
+ if (dirContext != null) {
+ if (debug >= 1) {
+ log("Releasing document base " + docBase);
+ }
+ if (dirContext instanceof BaseDirContext) {
+ ((BaseDirContext) dirContext).release();
+ } else {
+ log("Cannot release " + resources);
+ }
+ }
+
} finally {
1.4 +12 -7 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardHostDeployer.java
Index: StandardHostDeployer.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardHostDeployer.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- StandardHostDeployer.java 27 Jan 2002 21:11:20 -0000 1.3
+++ StandardHostDeployer.java 27 Feb 2002 01:17:00 -0000 1.4
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardHostDeployer.java,v 1.3 2002/01/27 21:11:20 remm Exp $
- * $Revision: 1.3 $
- * $Date: 2002/01/27 21:11:20 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardHostDeployer.java,v 1.4 2002/02/27 01:17:00 craigmcc Exp $
+ * $Revision: 1.4 $
+ * $Date: 2002/02/27 01:17:00 $
*
* ====================================================================
*
@@ -78,6 +78,7 @@
import org.apache.catalina.Container;
import org.apache.catalina.Context;
import org.apache.catalina.Deployer;
+import org.apache.catalina.Globals;
import org.apache.catalina.Lifecycle;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.LifecycleListener;
@@ -93,7 +94,7 @@
* <code>StandardHost</code> implementation class.</p>
*
* @author Craig R. McClanahan
- * @version $Revision: 1.3 $ $Date: 2002/01/27 21:11:20 $
+ * @version $Revision: 1.4 $ $Date: 2002/02/27 01:17:00 $
*/
public class StandardHostDeployer implements Deployer {
@@ -229,7 +230,9 @@
host.log(sm.getString("standardHost.installing", contextPath, url));
// Expand a WAR archive into an unpacked directory if needed
- if (host.isUnpackWARs()) {
+ // NOTE: If the user supplies a "jar:file:" URL, assume that
+ // they do not want WAR expansion even if unpackWARs is set
+ if (host.isUnpackWARs() && !url.startsWith("jar:file:")) {
if (url.startsWith("jar:"))
docBase = expand(war);
@@ -450,10 +453,14 @@
if (!contextPath.equals("") && !contextPath.startsWith("/"))
throw new IllegalArgumentException
(sm.getString("standardHost.pathFormat", contextPath));
+
+ // Locate the context and associated work directory
Context context = findDeployedApp(contextPath);
if (context == null)
throw new IllegalArgumentException
(sm.getString("standardHost.pathMissing", contextPath));
+ File workDir = (File) context.getServletContext().getAttribute
+ (Globals.WORK_DIR_ATTR);
// Remove this web application
host.log(sm.getString("standardHost.removing", contextPath));
@@ -726,7 +733,6 @@
*
* @exception IOException if an input/output error occurs
*/
- /*
protected void remove(File dir) throws IOException {
String list[] = dir.list();
@@ -745,7 +751,6 @@
dir.getAbsolutePath());
}
- */
}
1.3 +12 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/BaseDirContext.java
Index: BaseDirContext.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/BaseDirContext.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- BaseDirContext.java 28 Sep 2001 02:25:09 -0000 1.2
+++ BaseDirContext.java 27 Feb 2002 01:17:00 -0000 1.3
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/BaseDirContext.java,v 1.2 2001/09/28 02:25:09 remm Exp $
- * $Revision: 1.2 $
- * $Date: 2001/09/28 02:25:09 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/BaseDirContext.java,v 1.3 2002/02/27 01:17:00 craigmcc Exp $
+ * $Revision: 1.3 $
+ * $Date: 2002/02/27 01:17:00 $
*
* ====================================================================
*
@@ -85,7 +85,7 @@
* Directory Context implementation helper class.
*
* @author Remy Maucherat
- * @version $Revision: 1.2 $ $Date: 2001/09/28 02:25:09 $
+ * @version $Revision: 1.3 $ $Date: 2002/02/27 01:17:00 $
*/
public abstract class BaseDirContext implements DirContext {
@@ -265,6 +265,14 @@
// --------------------------------------------------------- Public Methods
+
+
+ /**
+ * Release any resources allocated for this directory context.
+ */
+ public void release() {
+ ; // No action taken by the default implementation
+ }
// -------------------------------------------------------- Context Methods
1.10 +17 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java
Index: FileDirContext.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- FileDirContext.java 31 Oct 2001 18:58:36 -0000 1.9
+++ FileDirContext.java 27 Feb 2002 01:17:00 -0000 1.10
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v 1.9 2001/10/31 18:58:36 remm Exp $
- * $Revision: 1.9 $
- * $Date: 2001/10/31 18:58:36 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v 1.10 2002/02/27 01:17:00 craigmcc Exp $
+ * $Revision: 1.10 $
+ * $Date: 2002/02/27 01:17:00 $
*
* ====================================================================
*
@@ -99,7 +99,7 @@
* Filesystem Directory Context implementation helper class.
*
* @author Remy Maucherat
- * @version $Revision: 1.9 $ $Date: 2001/10/31 18:58:36 $
+ * @version $Revision: 1.10 $ $Date: 2002/02/27 01:17:00 $
*/
public class FileDirContext extends BaseDirContext {
@@ -209,6 +209,19 @@
// --------------------------------------------------------- Public Methods
+
+
+ /**
+ * Release any resources allocated for this directory context.
+ */
+ public void release() {
+
+ caseSensitive = true;
+ absoluteBase = null;
+ base = null;
+ super.release();
+
+ }
// -------------------------------------------------------- Context Methods
1.11 +12 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/ProxyDirContext.java
Index: ProxyDirContext.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/ProxyDirContext.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ProxyDirContext.java 9 Oct 2001 02:49:04 -0000 1.10
+++ ProxyDirContext.java 27 Feb 2002 01:17:00 -0000 1.11
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/ProxyDirContext.java,v 1.10 2001/10/09 02:49:04 remm Exp $
- * $Revision: 1.10 $
- * $Date: 2001/10/09 02:49:04 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/ProxyDirContext.java,v 1.11 2002/02/27 01:17:00 craigmcc Exp $
+ * $Revision: 1.11 $
+ * $Date: 2002/02/27 01:17:00 $
*
* ====================================================================
*
@@ -85,7 +85,7 @@
* Proxy Directory Context implementation.
*
* @author Remy Maucherat
- * @version $Revision: 1.10 $ $Date: 2001/10/09 02:49:04 $
+ * @version $Revision: 1.11 $ $Date: 2002/02/27 01:17:00 $
*/
public class ProxyDirContext implements DirContext {
@@ -198,6 +198,14 @@
// --------------------------------------------------------- Public Methods
+
+
+ /**
+ * Return the actual directory context we are wrapping.
+ */
+ public DirContext getDirContext() {
+ return this.dirContext;
+ }
/**
1.4 +28 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/WARDirContext.java
Index: WARDirContext.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/WARDirContext.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- WARDirContext.java 16 Aug 2001 01:20:05 -0000 1.3
+++ WARDirContext.java 27 Feb 2002 01:17:00 -0000 1.4
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/WARDirContext.java,v 1.3 2001/08/16 01:20:05 craigmcc Exp $
- * $Revision: 1.3 $
- * $Date: 2001/08/16 01:20:05 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/WARDirContext.java,v 1.4 2002/02/27 01:17:00 craigmcc Exp $
+ * $Revision: 1.4 $
+ * $Date: 2002/02/27 01:17:00 $
*
* ====================================================================
*
@@ -100,7 +100,7 @@
* WAR Directory Context implementation.
*
* @author Remy Maucherat
- * @version $Revision: 1.3 $ $Date: 2001/08/16 01:20:05 $
+ * @version $Revision: 1.4 $ $Date: 2002/02/27 01:17:00 $
*/
public class WARDirContext extends BaseDirContext {
@@ -188,6 +188,30 @@
super.setDocBase(docBase);
loadEntries();
+
+ }
+
+
+ // --------------------------------------------------------- Public Methods
+
+
+ /**
+ * Release any resources allocated for this directory context.
+ */
+ public void release() {
+
+ entries = null;
+ if (base != null) {
+ try {
+ base.close();
+ } catch (IOException e) {
+ System.out.println
+ ("Exception closing WAR File " + base.getName());
+ e.printStackTrace(System.out);
+ }
+ }
+ base = null;
+ super.release();
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>