You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Truffle can throw an NPE when calling Binding#local_variable_get with a name that doesn't exist:
> env JRUBY_OPTS=-Xtruffle.exceptions.print_java=true bin/jruby -X+T -v -e 'p binding.local_variable_get(:x)'
jruby 9.0.0.0-SNAPSHOT (2.2.2) 2015-05-08 89c7044 Java HotSpot(TM) 64-Bit Server VM 25.45-b02 on 1.8.0_45-b14 +jit [linux-amd64]
java.lang.NullPointerException
at com.oracle.truffle.api.impl.DefaultVirtualFrame.getSlotIndexChecked(DefaultVirtualFrame.java:158)
at com.oracle.truffle.api.impl.DefaultVirtualFrame.verifyGet(DefaultVirtualFrame.java:173)
at com.oracle.truffle.api.impl.DefaultVirtualFrame.getBoolean(DefaultVirtualFrame.java:88)
at com.oracle.truffle.api.impl.DefaultMaterializedFrame.getBoolean(DefaultMaterializedFrame.java:70)
at org.jruby.truffle.nodes.methods.locals.ReadAbstractFrameSlotNode.getBoolean(ReadAbstractFrameSlotNode.java:88)
at org.jruby.truffle.nodes.methods.locals.ReadAbstractFrameSlotNode.doBoolean(ReadAbstractFrameSlotNode.java:30)
at org.jruby.truffle.nodes.methods.locals.ReadAbstractFrameSlotNodeGen$BooleanNode_.execute(ReadAbstractFrameSlotNodeGen.java:132)
at org.jruby.truffle.nodes.methods.locals.ReadAbstractFrameSlotNodeGen$BaseNode_.acceptAndExecute(ReadAbstractFrameSlotNodeGen.java:79)
at com.oracle.truffle.api.dsl.internal.SpecializationNode.uninitialized(SpecializationNode.java:390)
at org.jruby.truffle.nodes.methods.locals.ReadAbstractFrameSlotNodeGen$UninitializedNode_.execute(ReadAbstractFrameSlotNodeGen.java:114)
at org.jruby.truffle.nodes.methods.locals.ReadAbstractFrameSlotNodeGen.executeRead(ReadAbstractFrameSlotNodeGen.java:45)
at org.jruby.truffle.nodes.core.BindingNodes$LocalVariableGetNode.localVariableGetCached(BindingNodes.java:83)
at org.jruby.truffle.nodes.core.BindingNodesFactory$LocalVariableGetNodeFactory$LocalVariableGetNodeGen$LocalVariableGetCachedNode_.execute_(BindingNodesFactory.java:335)
at org.jruby.truffle.nodes.core.BindingNodesFactory$LocalVariableGetNodeFactory$LocalVariableGetNodeGen$BaseNode_.acceptAndExecute(BindingNodesFactory.java:215)
at com.oracle.truffle.api.dsl.internal.SpecializationNode.uninitialized(SpecializationNode.java:408)
at org.jruby.truffle.nodes.core.BindingNodesFactory$LocalVariableGetNodeFactory$LocalVariableGetNodeGen$UninitializedNode_.execute_(BindingNodesFactory.java:273)
at org.jruby.truffle.nodes.core.BindingNodesFactory$LocalVariableGetNodeFactory$LocalVariableGetNodeGen$BaseNode_.execute(BindingNodesFactory.java:223)
at org.jruby.truffle.nodes.core.BindingNodesFactory$LocalVariableGetNodeFactory$LocalVariableGetNodeGen.execute(BindingNodesFactory.java:179)
at org.jruby.truffle.nodes.control.SequenceNode.execute(SequenceNode.java:83)
at org.jruby.truffle.nodes.methods.ExceptionTranslatingNode.execute(ExceptionTranslatingNode.java:56)
at org.jruby.truffle.nodes.RubyRootNode.execute(RubyRootNode.java:57)
at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:76)
at com.oracle.truffle.api.impl.DefaultDirectCallNode.call(DefaultDirectCallNode.java:65)
at org.jruby.truffle.nodes.dispatch.CachedBoxedDispatchNode.executeDispatch(CachedBoxedDispatchNode.java:145)
at org.jruby.truffle.nodes.dispatch.UnresolvedDispatchNode.executeDispatch(UnresolvedDispatchNode.java:109)
at org.jruby.truffle.nodes.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:50)
at org.jruby.truffle.nodes.dispatch.CallDispatchHeadNode.call(CallDispatchHeadNode.java:35)
at org.jruby.truffle.nodes.RubyCallNode.execute(RubyCallNode.java:147)
at org.jruby.truffle.nodes.RubyCallNode.executeArguments(RubyCallNode.java:163)
at org.jruby.truffle.nodes.RubyCallNode.execute(RubyCallNode.java:142)
at org.jruby.truffle.nodes.control.SequenceNode.execute(SequenceNode.java:83)
at org.jruby.truffle.nodes.methods.CatchNextNode.execute(CatchNextNode.java:36)
at org.jruby.truffle.nodes.methods.CatchReturnAsErrorNode.execute(CatchReturnAsErrorNode.java:35)
at org.jruby.truffle.nodes.methods.CatchRetryAsErrorNode.execute(CatchRetryAsErrorNode.java:32)
at org.jruby.truffle.nodes.methods.SetMethodDeclarationContext.execute(SetMethodDeclarationContext.java:46)
at org.jruby.truffle.nodes.TopLevelRaiseHandler.execute(TopLevelRaiseHandler.java:32)
at org.jruby.truffle.nodes.control.SequenceNode.execute(SequenceNode.java:83)
at org.jruby.truffle.nodes.RubyRootNode.execute(RubyRootNode.java:57)
at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:76)
at org.jruby.truffle.runtime.RubyContext.execute(RubyContext.java:281)
at org.jruby.truffle.runtime.RubyContext.execute(RubyContext.java:270)
at org.jruby.truffle.runtime.RubyContext.load(RubyContext.java:214)
at org.jruby.truffle.TruffleBridgeImpl.execute(TruffleBridgeImpl.java:187)
at org.jruby.truffle.TruffleBridgeImpl.execute(TruffleBridgeImpl.java:167)
at org.jruby.Ruby.runInterpreter(Ruby.java:869)
at org.jruby.Ruby.runInterpreter(Ruby.java:883)
at org.jruby.Ruby.runNormally(Ruby.java:758)
at org.jruby.Ruby.runFromMain(Ruby.java:575)
at org.jruby.Main.doRunFromMain(Main.java:402)
at org.jruby.Main.internalRun(Main.java:297)
at org.jruby.Main.run(Main.java:226)
at org.jruby.Main.main(Main.java:198)
-e:1:in `local_variable_get': internal implementation error - NullPointerException null com.oracle.truffle.api.impl.DefaultVirtualFrame.getSlotIndexChecked(DefaultVirtualFrame.java:158) (RubyTruffleError)
from -e:1:in `<main>'
The text was updated successfully, but these errors were encountered:
ruby -e'p binding.local_variable_get(:x)'
-e:1:in`local_variable_get': local variable `x' not defined for #<Binding:0x007fa5c11a4118> (NameError) from -e:1:in `<main>'
Truffle can throw an NPE when calling Binding#local_variable_get with a name that doesn't exist:
The text was updated successfully, but these errors were encountered: