Changeset 13331 in josm
- Timestamp:
- 2018-01-16T00:28:24+01:00 (7 years ago)
- Location:
- trunk/src/org/openstreetmap/josm
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/validation/tests/OpeningHourTest.java
r13298 r13331 12 12 import javax.script.Invocable; 13 13 import javax.script.ScriptEngine; 14 import javax.script.ScriptEngineManager;15 14 import javax.script.ScriptException; 16 15 … … 23 22 import org.openstreetmap.josm.tools.LanguageInfo; 24 23 import org.openstreetmap.josm.tools.Logging; 24 import org.openstreetmap.josm.tools.Utils; 25 25 26 26 /** … … 36 36 * Javascript engine 37 37 */ 38 public static final ScriptEngine ENGINE = newScriptEngineManager(null).getEngineByName("JavaScript");38 public static final ScriptEngine ENGINE = Utils.getJavaScriptEngine(); 39 39 40 40 /** -
trunk/src/org/openstreetmap/josm/gui/download/OverpassQueryWizardDialog.java
r12977 r13331 144 144 private Optional<String> tryParseSearchTerm(String searchTerm) { 145 145 try { 146 String query = this.overpassQueryBuilder.constructQuery(searchTerm); 147 148 return Optional.of(query); 149 } catch (UncheckedParseException ex) { 146 return Optional.of(overpassQueryBuilder.constructQuery(searchTerm)); 147 } catch (UncheckedParseException | IllegalStateException ex) { 150 148 Logging.error(ex); 151 149 JOptionPane.showMessageDialog( … … 158 156 JOptionPane.ERROR_MESSAGE 159 157 ); 160 161 158 return Optional.empty(); 162 159 } -
trunk/src/org/openstreetmap/josm/gui/io/CustomConfigurator.java
r13268 r13331 26 26 27 27 import javax.script.ScriptEngine; 28 import javax.script.ScriptEngineManager;29 28 import javax.script.ScriptException; 30 29 import javax.swing.JOptionPane; … … 421 420 this.mainPrefs = mainPrefs; 422 421 PreferencesUtils.resetLog(); 423 engine = new ScriptEngineManager(null).getEngineByName("JavaScript"); 422 engine = Utils.getJavaScriptEngine(); 423 if (engine == null) { 424 throw new ScriptException("Failed to retrieve JavaScript engine"); 425 } 424 426 engine.eval("API={}; API.pref={}; API.fragments={};"); 425 427 -
trunk/src/org/openstreetmap/josm/tools/OverpassTurboQueryWizard.java
r13268 r13331 7 7 import javax.script.Invocable; 8 8 import javax.script.ScriptEngine; 9 import javax.script.ScriptEngineManager;10 9 import javax.script.ScriptException; 11 10 … … 22 21 23 22 private static OverpassTurboQueryWizard instance; 24 private final ScriptEngine engine = newScriptEngineManager(null).getEngineByName("JavaScript");23 private final ScriptEngine engine = Utils.getJavaScriptEngine(); 25 24 26 25 /** … … 37 36 38 37 private OverpassTurboQueryWizard() { 39 if (engine == null) {40 throw new IllegalStateException("Failed to retrieve JavaScript engine");41 }42 38 try (CachedFile file = new CachedFile("resource://data/overpass-wizard.js"); 43 39 Reader reader = file.getContentReader()) { 44 engine.eval("var console = {error: " + Logging.class.getCanonicalName() + ".warn};"); 45 engine.eval("var global = {};"); 46 engine.eval(reader); 47 engine.eval("var overpassWizard = function(query) {" + 48 " return global.overpassWizard(query, {" + 49 " comment: false," + 50 " outputFormat: 'xml'," + 51 " outputMode: 'recursive_meta'" + 52 " });" + 53 "}"); 40 if (engine != null) { 41 engine.eval("var console = {error: " + Logging.class.getCanonicalName() + ".warn};"); 42 engine.eval("var global = {};"); 43 engine.eval(reader); 44 engine.eval("var overpassWizard = function(query) {" + 45 " return global.overpassWizard(query, {" + 46 " comment: false," + 47 " outputFormat: 'xml'," + 48 " outputMode: 'recursive_meta'" + 49 " });" + 50 "}"); 51 } 54 52 } catch (ScriptException | IOException ex) { 55 53 throw new IllegalStateException("Failed to initialize OverpassTurboQueryWizard", ex); … … 64 62 */ 65 63 public String constructQuery(String search) { 64 if (engine == null) { 65 throw new IllegalStateException("Failed to retrieve JavaScript engine"); 66 } 66 67 try { 67 68 final Object result = ((Invocable) engine).invokeFunction("overpassWizard", search); -
trunk/src/org/openstreetmap/josm/tools/Utils.java
r13273 r13331 61 61 import java.util.zip.ZipFile; 62 62 63 import javax.script.ScriptEngine; 64 import javax.script.ScriptEngineManager; 63 65 import javax.xml.XMLConstants; 64 66 import javax.xml.parsers.DocumentBuilder; … … 1720 1722 } 1721 1723 1724 /** 1725 * Returns JRE JavaScript Engine (Nashorn by default), if any. 1726 * Catches and logs SecurityException and return null in case of error. 1727 * @return JavaScript Engine, or null. 1728 * @since 13301 1729 */ 1730 public static ScriptEngine getJavaScriptEngine() { 1731 try { 1732 return new ScriptEngineManager(null).getEngineByName("JavaScript"); 1733 } catch (SecurityException e) { 1734 Logging.error(e); 1735 return null; 1736 } 1737 } 1722 1738 }
Note:
See TracChangeset
for help on using the changeset viewer.