This is an automated email from the ASF dual-hosted git repository.

radu pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-bundle-tracker.git

commit bef6415e051f11dcf0054bf85efae6c9db65dc41
Author: Radu Cotescu <[email protected]>
AuthorDate: Thu Apr 9 18:04:53 2020 +0200

    SLING-9350 - Recompile scripts which hold a stale ScriptEngine reference
---
 .../org/apache/sling/scripting/bundle/tracker/internal/Script.java   | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/Script.java 
b/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/Script.java
index c541e59..bd274b3 100644
--- 
a/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/Script.java
+++ 
b/src/main/java/org/apache/sling/scripting/bundle/tracker/internal/Script.java
@@ -76,10 +76,11 @@ class Script extends AbstractBundledRenderUnit {
     @Override
     public void eval(@NotNull ScriptEngine scriptEngine, @NotNull 
ScriptContext context) throws ScriptException {
         try {
-            if (scriptEngine instanceof Compilable && compiledScript == null) {
+            if (scriptEngine instanceof Compilable &&
+                    (compiledScript == null || 
!scriptEngine.getFactory().equals(compiledScript.getEngine().getFactory()))) {
                 compilationLock.lock();
                 try {
-                    if (compiledScript == null) {
+                    if (compiledScript == null || 
!scriptEngine.getFactory().equals(compiledScript.getEngine().getFactory())) {
                         compiledScript =
                                 ((Compilable) scriptEngine)
                                         .compile(new ScriptNameAwareReader(new 
StringReader(getSourceCode()), getName()));

Reply via email to