[ https://issues.apache.org/jira/browse/SLING-12442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Julian Sedding resolved SLING-12442. ------------------------------------ Resolution: Fixed > Regression due to SLING-11299 > ----------------------------- > > Key: SLING-12442 > URL: https://issues.apache.org/jira/browse/SLING-12442 > Project: Sling > Issue Type: Bug > Components: Scripting > Affects Versions: Scripting JSP 2.6.0, Scripting JSP 2.6.2 > Reporter: Julian Sedding > Assignee: Julian Sedding > Priority: Major > Fix For: Scripting JSP 2.6.4 > > > The fix for SLING-11299 introduced a regression. With that change, a JSP > script is re-compiled whenever an exception occurs during the execution of > the script. > To fix the immediate issue, in this ticket, the "improved" error logging will > be reverted to what it was before SLING-11299. Restoring this improvement > will be covered in a separate ticket. > Re-compilation performs the following (non-atomic/non-synchronized) steps > * delete old java file > * delete old class file > * generate new java file > * compile new java file to class file > * add smap data (java source maps for languages that are converted to java > source) > ** write tmp class file with added smap data (non-randomized file name) > ** delete class file > ** move tmp class file to class file path > Any request threads that want to render the same JSP script, and that observe > that the class file is missing, will also start recompilation with all steps > from above. > This can lead to multiple threads throwing exceptions due to an unexpected > state on the file system. Especially under load, it can be difficult for the > system to recover from such a situation. -- This message was sent by Atlassian Jira (v8.20.10#820010)