7024096: Stack trace has invalid line numbers

Reviewed-by: jjg, darcy
This commit is contained in:
Bruce Chapman 2011-09-02 07:54:16 -07:00 committed by Kumar Srinivasan
parent 7d7c8d7cdf
commit 0da4a58897
2 changed files with 33 additions and 0 deletions

View File

@ -1689,6 +1689,8 @@ public class Gen extends JCTree.Visitor {
// outer instance of a super(...) call appears as first parameter).
genArgs(tree.args,
TreeInfo.symbol(tree.meth).externalType(types).getParameterTypes());
code.statBegin(tree.pos);
code.markStatBegin();
result = m.invoke();
}

View File

@ -0,0 +1,31 @@
/*
* @test /nodynamiccopyright/
* @bug 7024096
* @summary Stack trace has invalid line numbers
* @author Bruce Chapman
* @compile T7024096.java
* @run main T7024096
*/
public class T7024096 {
private static final int START = 14; // starting line number for the test
public static void main(String[] args) {
T7024096 m = new T7024096();
m.nest(START);
m.nest(START + 1, m.nest(START + 1), m.nest(START + 1),
m.nest(START + 2),
m.nest(START + 3, m.nest(START + 3)));
}
public T7024096 nest(int expectedline, T7024096... args) {
Exception e = new Exception("expected line#: " + expectedline);
int myline = e.getStackTrace()[1].getLineNumber();
if( myline != expectedline) {
throw new RuntimeException("Incorrect line number " +
"expected: " + expectedline +
", got: " + myline, e);
}
System.out.format("Got expected line number %d correct %n", myline);
return null;
}
}