public void clear() {
    try {
      if (!protectedQueue.isEmpty()) {
        for (Map.Entry<K, V> entry : protectedQueue.entrySet()) {
          onDropFromCache(entry.getKey(), entry.getValue());
        }
      }

      if (!probationalQueue.isEmpty()) {
        for (Map.Entry<K, V> entry : probationalQueue.entrySet()) {
          onDropFromCache(entry.getKey(), entry.getValue());
        }
      }
    }
    finally {
      protectedQueue.clear();
      probationalQueue.clear();
    }
  }
public void clear()