Trejkaz created JRUBY-6284: ------------------------------ Summary: Calls to Kernel#exit result in an exception printed on stderr Key: JRUBY-6284 URL: https://jira.codehaus.org/browse/JRUBY-6284 Project: JRuby Issue Type: Bug Components: Embedding Affects Versions: JRuby 1.6.5, JRuby 1.6.1 Reporter: Trejkaz
The following test: {code} @Test public void testJRubyExitBehaviour() throws Exception { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByExtension("rb"); try { engine.eval("exit 3"); fail("Expected ScriptException"); } catch (ScriptException e) { // Expected } } {code} The test itself does actually pass, but what's bad here is that it logs the following to stderr: {code} SystemExit: exit exit at org/jruby/RubyKernel.java:867 exit at org/jruby/RubyKernel.java:836 (root) at <script>:1 org.jruby.embed.EvalFailedException: (SystemExit) exit at org.jruby.embed.internal.EmbedEvalUnitImpl.run(EmbedEvalUnitImpl.java:127) at org.jruby.embed.jsr223.JRubyEngine.eval(JRubyEngine.java:90) at org.jruby.embed.jsr223.JRubyEngine.eval(JRubyEngine.java:153) at com.nuix.script.TestScriptUtils.testJRubyExitBehaviour(TestScriptUtils.java:25) ...26 lines elided... Caused by: org.jruby.exceptions.RaiseException: (SystemExit) exit {code} This makes it difficult if you're trying to write a command-line application which wants to display a nice usage message to the user and then exit - they can't read the usage message because they get a page full of errors after it. The main jruby runtime itself doesn't appear to do this with the same kind of script, so I figure the error is limited to when you're embedding. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email