# HG changeset patch # User dsamersoff # Date 1464371809 0 # Node ID 30d07a554f01d9e489b35d16c0cd6501a2794faa # Parent 7da36c5eb9dac3ae8b5f86578615d9dc6dcb4c68# Parent 44a8f6937d899c151ef4f8db5aea62eb6970a72a Merge diff -r 7da36c5eb9da -r 30d07a554f01 hotspot/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java --- a/hotspot/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java Fri May 27 16:39:49 2016 +0000 +++ b/hotspot/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java Fri May 27 17:56:49 2016 +0000 @@ -1712,7 +1712,8 @@ // called after debuggee attach private void postAttach() { // create JavaScript engine and start it - jsengine = new JSJavaScriptEngine() { + try { + jsengine = new JSJavaScriptEngine() { private ObjectReader reader = new ObjectReader(); private JSJavaFactory factory = new JSJavaFactoryImpl(); public ObjectReader getObjectReader() { @@ -1735,17 +1736,24 @@ return err; } }; - try { - jsengine.defineFunction(this, + try { + jsengine.defineFunction(this, this.getClass().getMethod("registerCommand", new Class[] { String.class, String.class, String.class })); - } catch (NoSuchMethodException exp) { - // should not happen, see below...!! - exp.printStackTrace(); + } catch (NoSuchMethodException exp) { + // should not happen, see below...!! + exp.printStackTrace(); + } + jsengine.start(); } - jsengine.start(); + catch (Exception ex) { + System.out.println("Warning! JS Engine can't start, some commands will not be available."); + if (verboseExceptions) { + ex.printStackTrace(out); + } + } } public void registerCommand(String cmd, String usage, final String func) {