How come single-stepping through a method doesn always go to the right place?
The debugger is the first client of the compiler’s line tables, and that line number information needs refinement. The javap command has been enhanced to report the line number and local variable tables (use the -l option), and you can see first hand one of the areas we’ll be fixing for future versions.