Mercurial > hg > icedtea7-forest > jdk
changeset 7623:07be5d550873 jdk7u55-b12
8036794: Manage JavaScript instances
Reviewed-by: sundar, ahgross
author | mbankal |
---|---|
date | Mon, 10 Mar 2014 18:40:38 +0000 |
parents | 5185723546d5 |
children | 51ff2df66fd5 |
files | src/share/classes/javax/script/ScriptEngineManager.java |
diffstat | 1 files changed, 14 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/javax/script/ScriptEngineManager.java Tue Mar 04 12:02:10 2014 -0800 +++ b/src/share/classes/javax/script/ScriptEngineManager.java Mon Mar 10 18:40:38 2014 +0000 @@ -85,15 +85,18 @@ nameAssociations = new HashMap<String, ScriptEngineFactory>(); extensionAssociations = new HashMap<String, ScriptEngineFactory>(); mimeTypeAssociations = new HashMap<String, ScriptEngineFactory>(); - AccessController.doPrivileged(new PrivilegedAction<Object>() { - public Object run() { - initEngines(loader); - return null; - } - }); + List<ScriptEngineFactory> facList = AccessController.doPrivileged( + new PrivilegedAction<List<ScriptEngineFactory>>() { + public List<ScriptEngineFactory> run() { + return initEngines(loader); + } + }); + for (ScriptEngineFactory fac : facList) { + engineSpis.add(fac); + } } - private void initEngines(final ClassLoader loader) { + private List<ScriptEngineFactory> initEngines(final ClassLoader loader) { Iterator itr = null; try { if (loader != null) { @@ -110,14 +113,15 @@ // do not throw any exception here. user may want to // manage his/her own factories using this manager // by explicit registratation (by registerXXX) methods. - return; + return null; } + final List<ScriptEngineFactory> facList = new ArrayList<>(); try { while (itr.hasNext()) { try { ScriptEngineFactory fact = (ScriptEngineFactory) itr.next(); - engineSpis.add(fact); + facList.add(fact); } catch (ServiceConfigurationError err) { System.err.println("ScriptEngineManager providers.next(): " + err.getMessage()); @@ -137,8 +141,8 @@ // do not throw any exception here. user may want to // manage his/her own factories using this manager // by explicit registratation (by registerXXX) methods. - return; } + return facList; } /**