< 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 >