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

andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git

commit 2bb213f96592530c891bf43a44e93270895450de
Author: Andy Seaborne <[email protected]>
AuthorDate: Fri Nov 8 18:34:19 2024 +0000

    Scripting language names
---
 .../jena/sparql/function/scripting/ScriptFunction.java | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/function/scripting/ScriptFunction.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/function/scripting/ScriptFunction.java
index 8fafddbec5..f0a82d8fbc 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/function/scripting/ScriptFunction.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/function/scripting/ScriptFunction.java
@@ -76,14 +76,6 @@ public class ScriptFunction extends FunctionBase {
     private Set<String> allowList;
     private Set<String> denyList;
 
-    // Collect language names (for reference).
-//    private static Set<String> languageNames = new HashSet<>();
-//    static {
-//        scriptEngineManager
-//            .getEngineFactories()
-//            .forEach(sef -> sef.getNames().forEach(languageNames::add));
-//    }
-
     public static boolean isScriptFunction(String uri) {
         if (!uri.startsWith(ARQ_NS)) {
             return false;
@@ -201,7 +193,7 @@ public class ScriptFunction extends FunctionBase {
         String lookupLang =  "js".equals(lang) ? "javascript" : lang;
         ScriptEngine engine = scriptEngineManager.getEngineByName(lookupLang);
         if (engine == null)
-            throw new ExprException("Unknown scripting language: " + lang);
+            throw new ExprException("Unknown scripting language: " + 
lookupLang+ " : "+listEngines());
         // Enforce Nashorn compatibility for Graal.js
         if (engine.getFactory().getEngineName().equals("Graal.js")) {
             engine.getContext().setAttribute("polyglot.js.nashorn-compat", 
true, ScriptContext.ENGINE_SCOPE);
@@ -240,4 +232,12 @@ public class ScriptFunction extends FunctionBase {
     static void clearEngineCache() {
         enginePools.clear();
     }
+
+    private static List<String> listEngines() {
+        List<String> languageNames = new ArrayList<>();
+        scriptEngineManager
+            .getEngineFactories()
+            .forEach(sef -> sef.getNames().forEach(languageNames::add));
+        return languageNames;
+    }
 }

Reply via email to