I have set "externalize strings larger than 1000 characters" set for a web context, with inspect templates set to once per request.
today I got a very random error about one of the externalized txt files being missing
timesheetgateway_cfc$cf.txt (The system cannot find the path specified)"",""DETAIL"":"""",""TYPE"":""java.io.FileNotFoundException""
I had a look around the all various log files and couldn't see anything except the error
I had a look into the C:\\lucee\\web-contexts\\test\\cfclasses
CFC__test1220 folder only had a small subset of all the classes which are normally there.. it's as if they got partially purged or something
I guess there needs to be either some extra logic which takes into consideration the dependency between externalised text files and their classes when purging cfclasses, or Lucee could just recover by recompiling the cfc if a externalised text file is missing
This is also affecting core lucee functionality like cfdump
C:\lucee\web-contexts\test\cfclasses\CFC__lucee_tomcat_lucee_server_context_library_tag13894\dump_cfc$cf.txt (The system cannot find the path specified)
a good way to trigger seems to be to try the “externalize strings larger than 10 characters” which seems to be way to small to be of any practical use, but it demonstrates the problem rather well
I’m guessing one of the key problems is that if you persist a cfc in the application scope, what seems to happen is that some of the text files on which that cfc depends on may be cleared out of the cfclasses directory
just being able to limit this to .cfm files which can’t be persisted would avoid most of the problems, plus somehow making the purge class process consider the source class file and externalized files and as one entity