docs: @Override
      public void removeElement(CacheElement cacheElement, boolean dropRef)
      {
          Element element = (Element) cacheElement;
  
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "remove", new Object[] { element.key, dropRef });
  
          Bucket bucket = element.ivBucket;
          synchronized (bucket)
          {
              bucket.removeByKey(element.key, dropRef);
          }
  
          synchronized (this)
          {
              // ACK! This is going to be a choke point
              numObjects--;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.exit(tc, "remove", element.object);
      }