1 /* 2 * @test /nodynamiccopyright/ 3 * @bug 6911256 6964740 6965277 4 * @author Maurizio Cimadamore 5 * @summary Check that resources of an intersection type forces union of exception types 6 * to be caught outside arm block 7 * @compile/fail/ref=ArmIntersection02.out -XDrawDiagnostics ArmIntersection02.java 8 */ 9 10 class ArmIntersection02 { 11 12 static class Exception1 extends Exception {} 13 static class Exception2 extends Exception {} 14 15 16 interface MyResource1 extends AutoCloseable { 17 void close() throws Exception1; 18 } 19 20 interface MyResource2 extends AutoCloseable { 21 void close() throws Exception2; 22 } 23 24 public void test1() throws Exception1 { 25 try(getX()) { 26 //do something 27 } 28 } 29 30 public void test2() throws Exception2 { 31 try(getX()) { 32 //do something 33 } 34 } 35 36 <X extends MyResource1 & MyResource2> X getX() { return null; } 37 }