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


Reply via email to