< prev index next >
test/tools/javac/TryWithResources/TwrForVariable1.java
Print this page
*** 35,44 ****
--- 35,80 ----
assertCloseCount(5);
}
}
assertCloseCount(6);
+
+ // null test cases
+ TwrForVariable1 n = null;
+
+ try (n) {
+ }
+ try (n) {
+ throw new Exception();
+ } catch (Exception e) {
+ }
+
+ assertCloseCount(6);
+
+ // initialization exception
+ TwrForVariable1 i1 = new TwrForVariable1();
+ try (i1; TwrForVariable1 i2 = new TwrForVariable1(true)) {
+ } catch (Exception e) {
+ }
+
+ assertCloseCount(7);
+
+ // multiple closures
+ TwrForVariable1 m1 = new TwrForVariable1();
+ try (m1; TwrForVariable1 m2 = m1; TwrForVariable1 m3 = m2;) {
+ }
+
+ assertCloseCount(10);
+
+ // aliasing of variables keeps equality (bugs 6911256 6964740)
+ TwrForVariable1 a1 = new TwrForVariable1();
+ try (a1; TwrForVariable1 a2 = a1;) {
+ if (a2 != a2)
+ throw new RuntimeException("Unexpected inequality.");
+ }
+
+ assertCloseCount(12);
}
static void assertCloseCount(int expectedCloseCount) {
if (closeCount != expectedCloseCount)
throw new RuntimeException("bad closeCount: " + closeCount +
*** 64,69 ****
--- 100,114 ----
@Override
public void close() {
closeCount++;
}
}
+
+ public TwrForVariable1(boolean throwException) {
+ if (throwException)
+ throw new RuntimeException("Initialization exception");
+ }
+
+ public TwrForVariable1() {
+ this(false);
+ }
}
< prev index next >