test/tools/javac/T6181889/EmptyFinallyTest.java

Mon, 23 Sep 2013 17:27:38 +0400

author
kizune
date
Mon, 23 Sep 2013 17:27:38 +0400
changeset 2048
809a50f24d6f
parent 0
959103a6100f
permissions
-rw-r--r--

7154966: CRs found to be in Fixed state with no test and no noreg- keyword.
Reviewed-by: ksrini

aoqi@0 1
aoqi@0 2 import java.io.PrintWriter;
aoqi@0 3 import java.io.StringWriter;
aoqi@0 4 import java.nio.file.Paths;
aoqi@0 5
aoqi@0 6 /*
aoqi@0 7 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
aoqi@0 8 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
aoqi@0 9 *
aoqi@0 10 * This code is free software; you can redistribute it and/or modify it
aoqi@0 11 * under the terms of the GNU General Public License version 2 only, as
aoqi@0 12 * published by the Free Software Foundation.
aoqi@0 13 *
aoqi@0 14 * This code is distributed in the hope that it will be useful, but WITHOUT
aoqi@0 15 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
aoqi@0 16 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
aoqi@0 17 * version 2 for more details (a copy is included in the LICENSE file that
aoqi@0 18 * accompanied this code).
aoqi@0 19 *
aoqi@0 20 * You should have received a copy of the GNU General Public License version
aoqi@0 21 * 2 along with this work; if not, write to the Free Software Foundation,
aoqi@0 22 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
aoqi@0 23 *
aoqi@0 24 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
aoqi@0 25 * or visit www.oracle.com if you need additional information or have any
aoqi@0 26 * questions.
aoqi@0 27 */
aoqi@0 28
aoqi@0 29 /*
aoqi@0 30 * @test
aoqi@0 31 * @bug 6181889
aoqi@0 32 * @summary Empty try/finally results in bytecodes being generated
aoqi@0 33 */
aoqi@0 34
aoqi@0 35 public class EmptyFinallyTest {
aoqi@0 36 private static final String assertionErrorMsg =
aoqi@0 37 "No \"Exception table\" should be generated in this case";
aoqi@0 38
aoqi@0 39 public static void main(String[] args) {
aoqi@0 40 new EmptyFinallyTest().run();
aoqi@0 41 }
aoqi@0 42
aoqi@0 43 void run() {
aoqi@0 44 check("-c", Paths.get(System.getProperty("test.classes"),
aoqi@0 45 "EmptyFinally.class").toString());
aoqi@0 46 }
aoqi@0 47
aoqi@0 48 void check(String... params) {
aoqi@0 49 StringWriter s;
aoqi@0 50 String out;
aoqi@0 51 try (PrintWriter pw = new PrintWriter(s = new StringWriter())) {
aoqi@0 52 com.sun.tools.javap.Main.run(params, pw);
aoqi@0 53 out = s.toString();
aoqi@0 54 }
aoqi@0 55 if (out.contains("Exception table")) {
aoqi@0 56 throw new AssertionError(assertionErrorMsg);
aoqi@0 57 }
aoqi@0 58 }
aoqi@0 59 }
aoqi@0 60
aoqi@0 61 class EmptyFinally {
aoqi@0 62 void m() {
aoqi@0 63 try {
aoqi@0 64 System.out.println("EMPTY TRY!");
aoqi@0 65 } finally {}
aoqi@0 66 }
aoqi@0 67 }

mercurial