Changing a file name's case leads to MissingIncludeException

Description

Consider the following scenario:
Template: /opt/lucee/tomcat/webapps/ROOT/test.cfm
URL: http://localhost:8888/test.cfm

The template can be accessed as expected (and disregarding upper/lower case) by entering http://localhost:8888/test.cfm or http://localhost:8888/tEst.cfm.
However, if the file is renamed from test.cfm to tEst.cfm, none of the aforementioned URLs are working any more. Instead, Lucee throws a MissingIncludeException with the message:

Page /test.cfm [/opt/lucee/tomcat/webapps/ROOT/test.cfm] not found

Note that the case used in the URL has no effect on the physical path that Lucee is looking for, which is expected behavior IMO. But it is still looking for the file in exactly the casing that was first encountered by Lucee.

To my knowledge, the only way to remediate this is restarting Lucee – either using the Linux shell or from Lucee Administrator.
Calling pagePoolClear() or systemCacheClear('all') however has no effect. Neither does clicking any of the "Clear... cache" buttons on the "Performance/Caching" page in Lucee Administrator.

This issue is currently biting us as we are gradually renaming templates in a large legacy application according to our newly introduced naming conventions.

I would expect Lucee to either check for a changed case before throwing a MissingIncludeException, or to provide a means to clear the "path cache" (in lack of a better term).

Does anyone know of a workaround to this issue?

Environment

Default Linux installer on Ubuntu 18.04 LTS
(lucee-5.3.2.077-pl0-linux-x64-installer.run)

Activity

Show:

Details

Assignee

Reporter

Priority

New Issue warning screen

Before you create a new Issue, please post to the mailing list first https://dev.lucee.org

Once the issue has been verified, one of the Lucee team will ask you to file an issue

Affects versions

Created 21 August 2019 at 14:15
Updated 6 September 2019 at 11:34

Flag notifications