As reported by Michael Young of FusionReactor.
We compared our own ColdFusion script after compilation by Lucee4.5 and Lucee5, this is where we found that the path stored in the "source file" attribute was different. Lucee4.5 contains the entire system path (which is required by FusionDebug) but Lucee5 only contains a relative path.
As a side by side example (see attached):
After navigating into our project's "WEB-INF/lucee/cfclasses/" folder and running "javap -v -l loop_cfm\$cf.class" on our class file we find the source attribute read as follows on Lucee 4.5:
Compiled from "/opt/Lucee/4.5/tomcat/webapps/LTA/loop.cfm"
When we do the same command on a Java class file compiled from the same source file on Lucee 5 we get:
Compiled from "/loop.cfm"
Here are the steps I used to reproduce the behavior myself:
- Spun up Lucee 5 site with CommandBox (server start cfengine=lucee@5)
- Used the admin to update the server version to the latest snapshot release
- Created an index.cfm file in the web root and hit it to compile the class file
- navigated to the cfclasses folder in the web context and opened a DOS window (I'm on Window)
- Ran the following command: javap -v -l index_cfm$cf.class
- At the bottom of the output from this command is the following: SourceFile: "/index.cfm"
The SourceFile value shows up as a relative path instead of an absolute path as it did in previous versions.