1 /* |
1 /* |
2 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2010, 2011 Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
21 * questions. |
21 * questions. |
22 */ |
22 */ |
23 |
23 |
24 /* |
24 /* |
25 * @test |
25 * @test |
26 * @bug 6911256 6964740 6965277 |
26 * @bug 6911256 6964740 6965277 7013420 |
27 * @author Maurizio Cimadamore |
27 * @author Maurizio Cimadamore |
28 * @summary Check that lowered arm block does not end up creating resource twice |
28 * @summary Check that lowered try-with-resources block does not end up creating resource twice |
29 */ |
29 */ |
30 |
30 |
31 import java.util.ArrayList; |
31 import java.util.ArrayList; |
32 |
32 |
33 public class DuplicateResource { |
33 public class DuplicateResource { |
43 } |
43 } |
44 |
44 |
45 static ArrayList<TestResource> resources = new ArrayList<TestResource>(); |
45 static ArrayList<TestResource> resources = new ArrayList<TestResource>(); |
46 |
46 |
47 public static void main(String[] args) { |
47 public static void main(String[] args) { |
48 try(new TestResource()) { |
48 try(TestResource tr = new TestResource()) { |
49 //do something |
49 //do something |
50 } catch (Exception e) { |
50 } catch (Exception e) { |
51 throw new AssertionError("Shouldn't reach here", e); |
51 throw new AssertionError("Shouldn't reach here", e); |
52 } |
52 } |
53 check(); |
53 check(); |
57 if (resources.size() != 1) { |
57 if (resources.size() != 1) { |
58 throw new AssertionError("Expected one resource, found: " + resources.size()); |
58 throw new AssertionError("Expected one resource, found: " + resources.size()); |
59 } |
59 } |
60 TestResource resource = resources.get(0); |
60 TestResource resource = resources.get(0); |
61 if (!resource.isClosed) { |
61 if (!resource.isClosed) { |
62 throw new AssertionError("Resource used in ARM block has not been automatically closed"); |
62 throw new AssertionError("Resource used in try-with-resources block has not been automatically closed"); |
63 } |
63 } |
64 } |
64 } |
65 } |
65 } |