@Override
  protected void clearCaches() {
    // clearing cache makes sense only if the object has not been collected yet
    myIsCollected.compareAndSet(ThreeState.NO, ThreeState.UNSURE);
  }
@Override
  protected void clearCaches()