No backtrace from trunk

Hello all.
1.5.5 works for me, but with 1.6.0 not sure what is going on here…
ref:

(on windows, running spec/ocr.spec.rb)
Any ideas (xp)?
Thanks!
-r

C:\dev\ruby\sensible-cinema\spec>jruby2 ocr.spec.rb

C:\dev\ruby\sensible-cinema\spec>c:\dev\ruby\downloads\jruby\bin\jruby
ocr.spec.rb
.FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF*FFF.F

  1. OCR should be able to OCR images/youtube_light_2_9.bmp
    Failure/Error: Unable to find matching line from backtrace
    org.jruby.RubyFile.path(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyString;

org.jruby.RubyFile$i_method_0_0$RUBYINVOKER$path.call(org/jruby/RubyFile$i_method_0_0$RUBYINVOKER$path.gen:65535)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:293)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:112)
# org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
# org.jruby.ast.CallTwoArgNode.interpret(CallTwoArgNode.java:59)
# org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
# org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
# org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
#
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201)
#
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:182)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:323)
#
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:161)
#
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:176)
#
org.jruby.ast.FCallOneArgBlockNode.interpret(FCallOneArgBlockNode.java:34)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
#
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:180)
#
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:174)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:313)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:152)
# org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
# org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
#
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:221)
#
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:190)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:333)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:192)
# ocr_dot_spec.block_4$RUBY$block(ocr.spec.rb:28)
# ocr_dot_specBlockCallback$block_4$RUBY$__block__xx1.call(Unknown
Source)
# org.jruby.runtime.CompiledBlock.yield(CompiledBlock.java:133)
# org.jruby.runtime.CompiledBlock.yield(CompiledBlock.java:99)
# org.jruby.runtime.Block.yieldNonArray(Block.java:205)
# org.jruby.RubyBasicObject.yieldUnder(RubyBasicObject.java:1708)
# org.jruby.RubyBasicObject.specificEval(RubyBasicObject.java:1732)
# org.jruby.RubyObject.instance_eval(RubyObject.java:1153)
#
org.jruby.RubyObject$i_method_multi$RUBYFRAMEDINVOKER$instance_eval.call(org/jruby/RubyObject$i_method_multi$RUBYFRAMEDINVOKER$instance_eval.gen:65535)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:303)
#
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:121)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:126)
#
org.jruby.ast.CallNoArgBlockPassNode.interpret(CallNoArgBlockPassNode.java:53)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
#
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:356)
#
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:329)
#
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:286)
# org.jruby.runtime.Block.yield(Block.java:194)
# org.jruby.RubyContinuation.enter(RubyContinuation.java:106)
# org.jruby.RubyKernel.rbCatch(RubyKernel.java:1190)
#
org.jruby.RubyKernel$s_method_1_0$RUBYFRAMEDINVOKER$rbCatch.call(org/jruby/RubyKernel$s_method_1_0$RUBYFRAMEDINVOKER$rbCatch.gen:65535)
#
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:159)
#
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:176)
#
org.jruby.ast.FCallOneArgBlockNode.interpret(FCallOneArgBlockNode.java:34)
# org.jruby.ast.InstAsgnNode.interpret(InstAsgnNode.java:95)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
#
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:160)
#
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:166)
#
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:119)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:126)
#
org.jruby.ast.FCallNoArgBlockPassNode.interpret(FCallNoArgBlockPassNode.java:27)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
# org.jruby.ast.RescueNode.executeBody(RescueNode.java:216)
#
org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:120)
# org.jruby.ast.RescueNode.interpret(RescueNode.java:110)
# org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
# org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
#
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:356)
#
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:310)
# org.jruby.runtime.BlockBody.call(BlockBody.java:78)
# org.jruby.runtime.Block.call(Block.java:89)
# org.jruby.RubyProc.call(RubyProc.java:279)
# org.jruby.RubyProc.call(RubyProc.java:239)
#
org.jruby.RubyProc$i_method_0_0$RUBYFRAMEDINVOKER$call.call(org/jruby/RubyProc$i_method_0_0$RUBYFRAMEDINVOKER$call.gen:65535)
#
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:184)
#
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:180)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:293)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:112)
# org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.IfNode.interpret(IfNode.java:119)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.RescueNode.executeBody(RescueNode.java:216)
#
org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:120)
# org.jruby.ast.RescueNode.interpret(RescueNode.java:110)
# org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
# org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
#
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:221)
#
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:190)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:333)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:192)
# org.jruby.ast.CallTwoArgNode.interpret(CallTwoArgNode.java:59)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
# org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
# org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
#
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:356)
#
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:329)
#
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:286)
# org.jruby.runtime.Block.yield(Block.java:194)
# org.jruby.RubyArray.collect(RubyArray.java:2371)
#
org.jruby.RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$collect.call(org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$collect.gen:65535)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:303)
#
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:121)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:126)
#
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64)
# org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
#
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:221)
#
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:190)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:333)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:192)
# org.jruby.ast.FCallTwoArgNode.interpret(FCallTwoArgNode.java:38)
# org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
# org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
# org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
#
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:180)
#
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:174)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:313)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:152)
# org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
# org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
# org.jruby.ast.DAsgnNode.interpret(DAsgnNode.java:110)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
#
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:356)
#
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:310)
#
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:349)
# org.jruby.runtime.Block.yieldArray(Block.java:210)
# org.jruby.RubyEnumerable$25.call(RubyEnumerable.java:781)
# org.jruby.runtime.CallBlock.yield(CallBlock.java:88)
# org.jruby.runtime.Block.yield(Block.java:194)
# org.jruby.RubyArray.eachCommon(RubyArray.java:1647)
# org.jruby.RubyArray.each(RubyArray.java:1654)
#
org.jruby.RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.call(org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.gen:65535)
# org.jruby.RubyClass.finvoke(RubyClass.java:519)
#
org.jruby.javasupport.util.RuntimeHelpers.invoke(RuntimeHelpers.java:438)
# org.jruby.RubyEnumerable.callEach(RubyEnumerable.java:72)
# org.jruby.RubyEnumerable.injectCommon(RubyEnumerable.java:777)
# org.jruby.RubyEnumerable.inject(RubyEnumerable.java:798)
#
org.jruby.RubyEnumerable$s_method_multi$RUBYFRAMEDINVOKER$inject.call(org/jruby/RubyEnumerable$s_method_multi$RUBYFRAMEDINVOKER$inject.gen:65535)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:323)
#
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:161)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:166)
#
org.jruby.ast.CallOneArgBlockNode.interpret(CallOneArgBlockNode.java:60)
# org.jruby.ast.InstAsgnNode.interpret(InstAsgnNode.java:95)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
#
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:180)
#
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:174)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:313)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:152)
# org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
# org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
# org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
#
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:356)
#
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:329)
#
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:286)
# org.jruby.runtime.Block.yield(Block.java:194)
# org.jruby.ast.YieldNode.interpret(YieldNode.java:112)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
# org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
#
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:356)
#
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:277)
#
org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:211)
# org.jruby.runtime.Block.yieldSpecific(Block.java:99)
# org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
# org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
# org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
#
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:160)
#
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:166)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:303)
#
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:121)
#
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:136)
#
org.jruby.ast.FCallNoArgBlockNode.interpret(FCallNoArgBlockNode.java:32)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
#
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201)
#
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:182)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:323)
#
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:161)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:166)
#
org.jruby.ast.CallOneArgBlockNode.interpret(CallOneArgBlockNode.java:60)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
#
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:221)
#
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:190)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:333)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:192)
# org.jruby.ast.CallTwoArgNode.interpret(CallTwoArgNode.java:59)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
#
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:262)
#
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:206)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:353)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:232)
#
org.jruby.ast.FCallThreeArgNode.interpret(FCallThreeArgNode.java:40)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.IfNode.interpret(IfNode.java:119)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
# org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
#
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:262)
#
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:206)
#
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:353)
#
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:232)
#
org.jruby.ast.FCallThreeArgNode.interpret(FCallThreeArgNode.java:40)
# org.jruby.ast.IfNode.interpret(IfNode.java:111)
# org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
#
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:356)
#
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:310)
# org.jruby.runtime.BlockBody.call(BlockBody.java:78)
# org.jruby.runtime.Block.call(Block.java:89)
# org.jruby.RubyProc.call(RubyProc.java:279)
# org.jruby.RubyProc.call(RubyProc.java:243)
# org.jruby.Ruby.tearDown(Ruby.java:2816)
# org.jruby.Ruby.tearDown(Ruby.java:2803)
# org.jruby.Main.run(Main.java:332)
# org.jruby.Main.run(Main.java:144)
# org.jruby.Main.main(Main.java:113)

That looks like a “raw” backtrace. Is that what you wanted?

I should also add that expecting the backtrace to have a specific
structure is fragile at best. There’s a chance I’ll be able to land
new backtrace logic on master for 1.6 that improves backtrace accuracy
but changes it subtly from what C ruby would show. Why do you have
tests for specific lines in the backtrace?

In this case what’s happening is that all of the specs are failing
(1.6.0 trunk only), so rspec is attempting to output the backtrace.
Whereas with 1.5.5 the specs pass. So it may not actually be a
backtrace issue, possibly something else (a windows issue maybe?)