### Question:
AbstractReferenceCounted implements ReferenceCounted { @Override public boolean release() { return release0(1); }  @Override final int refCnt(); @Override ReferenceCounted retain(); @Override ReferenceCounted retain(int increment); @Override ReferenceCounted touch(); @Override boolean release(); @Override boolean release(int decrement);  }### Answer:
@Test public void testReleaseErrorMessage() { AbstractReferenceCounted referenceCounted = newReferenceCounted(); assertTrue(referenceCounted.release()); try { referenceCounted.release(1); fail("IllegalReferenceCountException didn't occur"); } catch (IllegalReferenceCountException e) { assertEquals("refCnt: 0, decrement: 1", e.getMessage()); } }