### Question:
AbstractReferenceCountedByteBuf extends AbstractByteBuf { @Override public boolean release() { return release0(1); } protected  AbstractReferenceCountedByteBuf(int maxCapacity); @Override int refCnt(); @Override ByteBuf retain(); @Override ByteBuf retain(int increment); @Override ByteBuf touch(); @Override ByteBuf touch(Object hint); @Override boolean release(); @Override boolean release(int decrement);  }### Answer:
@Test public void testReleaseErrorMessage() { AbstractReferenceCountedByteBuf referenceCounted = newReferenceCounted(); assertTrue(referenceCounted.release()); try { referenceCounted.release(1); fail("IllegalReferenceCountException didn't occur"); } catch (IllegalReferenceCountException e) { assertEquals("refCnt: 0, decrement: 1", e.getMessage()); } }