DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5680>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5680

Application Manager bug in org.apache.catalina.core.StandardHost.java

           Summary: Application Manager bug in
                    org.apache.catalina.core.StandardHost.java
           Product: Tomcat 4
           Version: 4.0.1 Final
          Platform: PC
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Catalina
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


I'm using the "manager" application to re-deploy a web application. First, I
use the "remove" operation to remove the web app and then I use the
"install" operation to deploy a new web app with the same name. I use a WAR
file and the "unpackWARs" attribute of the "Host" element in the
"server.xml" is set to true.

The problem is that the files in the web app directory do not get updated.
The "remove" operation does not delete the web app directory under the
"webapps" directory, and the "install" operation does not overwrite the old
files.

I located the problem in:

"org.apache.catalina.core.StandardHost.java",

where the method:

"public void remove(String contextPath);" (line 772)

that implements the "remove" operation does not delete the web app directory
under the "webapps" directory. Even though there is the method:

"protected void remove(File dir);" (line 1008)

that does exactly that, it is never used. Then the method:

"public void install(String contextPath, URL war);" (line 644)

that implements the "install" operation calls the method:

"protected String expand(URL war);" (line 901)

that expands the provided WAR file and checks if there is already a
directory, under the "webapps" directory, named after the web app to be
installed:

    if (docBase.exists()) {
        // War file is already installed
        return (docBase.getAbsolutePath());
    }

If there is, then it returns without doing anything, which causes the files
in the web app directory not to get updated.

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to