--- /dev/null 2009-07-06 20:02:10.000000000 -0700 +++ new/test/tools/javac/AutomaticResourceManagement/ArmOnNonResource.java 2010-06-30 14:15:21.000000000 -0700 @@ -0,0 +1,42 @@ +/* + * @test /nodynamiccopyright/ + * @bug 6911256 6964740 + * @author Joseph D. Darcy + * @summary Verify invalid ARM block is not accepted. + * @compile/fail -source 6 ArmOnNonResource.java + * @compile/fail/ref=ArmOnNonResource.out -XDrawDiagnostics ArmOnNonResource.java + */ + +class ArmOnNonResource { + public static void main(String... args) { + try(ArmOnNonResource aonr = new ArmOnNonResource()) { + System.out.println(aonr.toString()); + } + try(ArmOnNonResource aonr = new ArmOnNonResource()) { + System.out.println(aonr.toString()); + } finally {;} + try(ArmOnNonResource aonr = new ArmOnNonResource()) { + System.out.println(aonr.toString()); + } catch (Exception e) {;} + + // Also check expression form + ArmOnNonResource aonr = new ArmOnNonResource(); + try(aonr) { + System.out.println(aonr.toString()); + } + try(aonr) { + System.out.println(aonr.toString()); + } finally {;} + try(aonr) { + System.out.println(aonr.toString()); + } catch (Exception e) {;} + } + + /* + * A close method, but the class is not Closeable or + * AutoCloseable. + */ + public void close() { + throw new AssertionError("I'm not Closable!"); + } +}