--- /dev/null 2009-08-12 17:12:33.000000000 -0700 +++ new/test/tools/javac/TryWithResources/TwrOnNonResource.java 2010-07-16 19:34:29.000000000 -0700 @@ -0,0 +1,42 @@ +/* + * @test /nodynamiccopyright/ + * @bug 6911256 6964740 + * @author Joseph D. Darcy + * @summary Verify invalid TWR block is not accepted. + * @compile/fail -source 6 TwrOnNonResource.java + * @compile/fail/ref=TwrOnNonResource.out -XDrawDiagnostics TwrOnNonResource.java + */ + +class TwrOnNonResource { + public static void main(String... args) { + try(TwrOnNonResource aonr = new TwrOnNonResource()) { + System.out.println(aonr.toString()); + } + try(TwrOnNonResource aonr = new TwrOnNonResource()) { + System.out.println(aonr.toString()); + } finally {;} + try(TwrOnNonResource aonr = new TwrOnNonResource()) { + System.out.println(aonr.toString()); + } catch (Exception e) {;} + + // Also check expression form + TwrOnNonResource aonr = new TwrOnNonResource(); + 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!"); + } +}