https://issues.apache.org/bugzilla/show_bug.cgi?id=56938

            Bug ID: 56938
           Summary: Applications with uppercase context paths cannot be
                    updated
           Product: Tomcat 8
           Version: 8.0.12
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: blocker
          Priority: P2
         Component: Manager
          Assignee: dev@tomcat.apache.org
          Reporter: austinjo...@avadynehealth.com

Tomcat 8.0.12 cannot update applications with uppercase context paths if the
application is deployed as a compressed WAR file.

For the bug to occur, two deployments are required (let's call them v1 and v2).

Deployment v1 goes through fine.  Both the WAR and unpacked directory are
updated.

Deployment v2 succeeds, but the application continues to serve v1.  The webapps
WAR file is updated, but the unpacked app directory is not.

I traced the issue to HostConfig.java line 1226:

1225: String docBase = context.getDocBase();
1226:   docBase = docBase.toLowerCase(Locale.ENGLISH);
1227:   if (!docBase.endsWith(".war")) {
...
1234:     ExpandWar.delete(docBaseFile);
...
1237:   }
1238:   reload(app)

The lowercase context path is passed to ExpandWar.delete, so the unpacked dir
is not deleted on case-sensitive filesystems.  Tomcat reports a successful
deployment of v2 in the Manager interface.

The toLowerCase call should be moved into the if statement, or bound to a
separate variable.  The original case-sensitive docBase path must be passed to
ExpandWar.delete.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to