Ugly backtrace using backquotes on App Engine
---------------------------------------------
Key: JRUBY-4534
URL: http://jira.codehaus.org/browse/JRUBY-4534
Project: JRuby
Issue Type: Bug
Reporter: Rib Rdb
Assignee: Thomas E Enebo
Using backquotes on App Engine results in a stack trace like the one below.
This instance can easily be fixed by catching the exception in
RubyKernel.backquote (in fact it's already trying, it probably just needs a
catch (Throwable t) instead of catch (Exception e)). However looking at the
trace it seems like there's probably lots of other places with this problem.
Perhaps the generated invokers should be changed to catch RuntimeExceptions and
convert them to NativeExceptions?
java.lang.SecurityException: Google App Engine does not support Runtime.exec
at
com.google.appengine.runtime.Request.process-1222db17c23be077(Request.java)
at java.lang.Runtime.exec(Runtime.java:93)
at org.jruby.util.ShellLauncher.run(ShellLauncher.java:677)
at org.jruby.util.ShellLauncher.runAndWait(ShellLauncher.java:238)
at org.jruby.RubyKernel.backquote(RubyKernel.java:1304)
at
org.jruby.RubyKernel$s_method_1_0$RUBYINVOKER$backquote.call(org/jruby/RubyKernel$s_method_1_0$RUBYINVOKER$backquote.gen)
at
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodOne.call(JavaMethod.java:917)
at
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:635)
at org.jruby.runtime.callsite.SuperCallSite.callBlock(SuperCallSite.java:48)
at org.jruby.runtime.callsite.SuperCallSite.call(SuperCallSite.java:55)
at org.jruby.ast.ZSuperNode.interpret(ZSuperNode.java:100)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.RescueNode.executeBody(RescueNode.java:225)
at org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:147)
at org.jruby.ast.RescueNode.interpret(RescueNode.java:110)
at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:173)
at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:169)
at org.jruby.RubyClass.finvoke(RubyClass.java:568)
at org.jruby.javasupport.util.RuntimeHelpers.invoke(RuntimeHelpers.java:409)
at org.jruby.RubyBasicObject.callMethod(RubyBasicObject.java:317)
at org.jruby.ast.XStrNode.interpret(XStrNode.java:83)
at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:192)
at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:177)
at org.jruby.RubyClass.finvoke(RubyClass.java:472)
at org.jruby.RubyObject.send(RubyObject.java:1442)
at
org.jruby.RubyObject$i_method_multi$RUBYINVOKER$send.call(org/jruby/RubyObject$i_method_multi$RUBYINVOKER$send.gen)
at
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:196)
at
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:213)
at org.jruby.ast.CallTwoArgBlockNode.interpret(CallTwoArgBlockNode.java:62)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:317)
at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:251)
at
org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:185)
at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:192)
at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:177)
at
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:156)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:163)
at org.jruby.ast.CallOneArgBlockNode.interpret(CallOneArgBlockNode.java:60)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:112)
at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:135)
at org.jruby.runtime.callsite.SuperCallSite.callBlock(SuperCallSite.java:48)
at org.jruby.runtime.callsite.SuperCallSite.call(SuperCallSite.java:55)
at org.jruby.ast.ZSuperNode.interpret(ZSuperNode.java:100)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:317)
at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:251)
at
org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:185)
at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
at org.jruby.ast.IfNode.interpret(IfNode.java:119)
at org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:317)
at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:251)
at
org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:185)
at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:317)
at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:251)
at
org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:185)
at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:155)
at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:161)
at
org.jruby.internal.runtime.methods.WrapperMethod.call(WrapperMethod.java:74)
at
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:116)
at
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:133)
at org.jruby.ast.FCallNoArgBlockNode.interpret(FCallNoArgBlockNode.java:32)
at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:155)
at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:161)
at
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:116)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:123)
at org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64)
at org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
at org.jruby.ast.IfNode.interpret(IfNode.java:117)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:266)
at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:209)
at
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:236)
at
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:253)
at
org.jruby.ast.CallThreeArgBlockNode.interpret(CallThreeArgBlockNode.java:64)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.IfNode.interpret(IfNode.java:117)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:210)
at
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:185)
at
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:330)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:189)
at org.jruby.ast.FCallTwoArgNode.interpret(FCallTwoArgNode.java:38)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.RescueNode.executeBody(RescueNode.java:225)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.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