Fixed
Details
Assignee
Michael OffnerMichael OffnerReporter
Brad WoodBrad WoodPriority
BlockerLabels
Fix versions
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
Sprint
None
Details
Details
Assignee
Michael Offner
Michael OffnerReporter
Brad Wood
Brad WoodPriority
Labels
Fix versions
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
Sprint
None
Created 31 March 2020 at 03:52
Updated 6 April 2020 at 21:48
Resolved 6 April 2020 at 17:44
Use of the Jython Java library that worked in Lucee 5.3.4 and previous is now broken in Lucee 5.3.5 as well as the 5.3.6 snapshots. Attached is a simple repro case that shows the error. You can run it easily in Commandbox by uzipping the attached zip file, and running
server start
from the root of the folder. If you run it outside of CommandBox, please place the jar file in the SERVLET'S LIB FOLDER Do not use this.javasettings or createObject() to load the jar. This bug seems specific to when the jar has been loaded by the servlet's classloader which is a parent of Lucee's class loaders.
In Lucee 5.3.4 and prior, the code will not error and the index page will simply output the text "bar" to the screen. On Lucee 5.3.5 and higher, you will get an exception with a root cause of:
RuntimeError: maximum recursion depth exceeded (Java StackOverflowError)
Something appears to have changed in 5.3.5 in regards to how the classes are loaded that is preventing this from working correctly.
In my tests, if I use this.javaSettings in the Application.cfc or the third argument to createObject() to point to the jars, the error goes away. This leads me to believe the issue is related to how the jar is class loaded.