1/* 2 * @test /nodynamiccopyright/ 3 * @bug 8025113 4 * @author sogoel 5 * @summary Redeclaration of resource variables 6 * @compile/fail/ref=ResourceRedecl.out -XDrawDiagnostics ResourceRedecl.java 7 */ 8 9import java.io.*; 10 11public class ResourceRedecl { 12 13 public void test() { 14 // compiler error if name of an exception param is redeclared within the Block of the catch clause as a local var; 15 // or as an exception param of a catch clause in a try statement; 16 // or as a resource in a try-with-resources statement 17 try { 18 } catch (Exception exParam1) { 19 Object exParam1 = new Object(); 20 try (java.io.FileInputStream exParam1 = new java.io.FileInputStream("foo.txt")) { 21 Object exParam1 = new Object(); 22 } catch (IOException exParam1) { 23 } 24 } 25 26 // compiler error if resource is redeclared within the try Block as a local var 27 // or as an exception param of a catch clause in a try statement 28 try (java.io.FileInputStream exParam2 = new java.io.FileInputStream("bar.txt")) { 29 Object exParam2 = new Object(); 30 try (BufferedReader br = new BufferedReader(new FileReader("zee.txt"))) { 31 } catch (IOException exParam2) { 32 } 33 } catch (Exception ex) { 34 } 35 } 36} 37 38