code: @Override
      public void finish() {
          // An assertion failure here means this CE
          // did not come from a CE pool and this
          // should never be the case;
          //assert cacheEntryPool != null;
          // if cacheEntryPool is null, the cacheEntry is not allocated from the pool
          if (cacheEntryPool != null) {
              synchronized (cacheEntryPool.cache) {
                  decRefCount();
                  if (refCount.get() <= 0) {
                      if (refCount.get() < 0)
                          refCount.set(0);
                      if (removeWhenUnpinned && refCount.get() == 0) {
                          returnToPool();
                      }
                  }
              }
          } else {
              synchronized (this.id) {
                  decRefCount();
                  if (refCount.get() <= 0) {
                      reset();
                  }
              }
          }
      }
docs: ---------------------------------