jruby/jruby — pull request #1450 by DavidEGrayson (2014-01-27 06:30:37+00:00)
Title: Make warnings show the right line number

As discussed in issue #1446, JRuby warnings (or at least some types of them) were always reporting a line number that was one greater than reality. This pull request fixes the issue and adds a regression test.

There were two places in `RubyWarnings.java` (one deprecated) where the code was explicitly printing `lineNumber + 1` instead of `lineNumber`. I think we should have a convention where the term "line number" is 1-based and we try to use that everywhere. If we have to use a 0-based number for a line it should be called a "line index" and it should have lots of comments about how it is not actually a "line number".

Unfortunately, my change might cause some other type of warning to have line numbers that are too small by one. I might look into setting up Eclipse so I can find all references to that code and make sure they are passing in proper line numbers instead of line indices.

I also tacked on a third commit that removes some unused code from `ThreadContext.gatherCallerBacktrace`. I found it while looking for the bug. I hope that's OK!