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".
lineNumber + 1
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!
Added a regression test for issue #1446: Line number in runtime warni…
…ngs is one greater than the actual line number.
Fixed two places where RubyWarnings was printing lineNumber+1 instead…
… of the actual line number. This fixes issue #1446.
ThreadContext.gatherCallerBacktrace: Got rid of several lines of code…
… that were computing things that were not used.