8011697: ScriptEngine "js" randomly means either "rhino" or "nashorn", but should instead select one

Sort ScriptEngineFactory by name so that same engine is retrieved across all OS

Reviewed-by: alanb, sundar
This commit is contained in:
Srinivas Dama 2018-02-02 23:21:12 +05:30 committed by Srinivas Dama
parent 94aa298a46
commit 1335ebada2
10 changed files with 511 additions and 2 deletions

View file

@ -77,7 +77,7 @@ public class ScriptEngineManager {
private void init(final ClassLoader loader) {
globalScope = new SimpleBindings();
engineSpis = new HashSet<ScriptEngineFactory>();
engineSpis = new TreeSet<ScriptEngineFactory>(Comparator.comparing(ScriptEngineFactory::getEngineName));
nameAssociations = new HashMap<String, ScriptEngineFactory>();
extensionAssociations = new HashMap<String, ScriptEngineFactory>();
mimeTypeAssociations = new HashMap<String, ScriptEngineFactory>();
@ -400,7 +400,7 @@ public class ScriptEngineManager {
}
/** Set of script engine factories discovered. */
private HashSet<ScriptEngineFactory> engineSpis;
private TreeSet<ScriptEngineFactory> engineSpis;
/** Map of engine name to script engine factory. */
private HashMap<String, ScriptEngineFactory> nameAssociations;