langtools/test/tools/javac/jvm/T8020689.java
author jlahoda
Sun, 28 Jul 2013 10:17:45 +0200
changeset 19131 519fa466d8ba
permissions -rw-r--r--
8020689: Missing LineNumberTable entries in compiled class files Reviewed-by: ksrini, mcimadamore
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19131
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
     1
/*
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
     2
 * @test  /nodynamiccopyright/
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
     3
 * @bug 8020689
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
     4
 * @summary Making sure the LineNumberTable entry is correctly generated for the leading method invocation in the else section
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
     5
 * @compile T8020689.java
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
     6
 * @run main T8020689
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
     7
 */
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
     8
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
     9
public class T8020689 {
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    10
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    11
    public static void main(String... args) {
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    12
        if (args.length > 0) {
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    13
            a();
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    14
        } else {
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    15
            b();
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    16
        }
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    17
    }
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    18
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    19
    static void a() {
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    20
    }
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    21
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    22
    static void b() {
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    23
        assertLine(15);
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    24
    }
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    25
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    26
    public static void assertLine(int expectedline) {
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    27
        Exception e = new Exception("expected line#: " + expectedline);
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    28
        int myline = e.getStackTrace()[2].getLineNumber();
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    29
        if( myline != expectedline) {
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    30
            throw new RuntimeException("Incorrect line number " +
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    31
                    "expected: " + expectedline +
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    32
                    ", got: " + myline, e);
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    33
        }
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    34
        System.out.format("Got expected line number %d correct %n", myline);
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    35
    }
519fa466d8ba 8020689: Missing LineNumberTable entries in compiled class files
jlahoda
parents:
diff changeset
    36
}