code: @SuppressWarnings("all")
      public void release() {
          if (allocationDebugging) {
              AllocationDebugger.getInstance().release(this);
          }
          final int baseCount = refcount.decrementAndGet();
          if (baseCount == 0) {
              releaseInternal();
          } else if (allocationDebugging && baseCount < 0) {
              throw new RuntimeException("attempt to retain object with invalid ref count");
          }
      }
docs: {@inheritDoc}