code: public final void expurge() {
  		final Iterator<Entry<K, ReferencableValue<K, V>>> iter = this.map.entrySet().iterator();
  		Entry<K, ReferencableValue<K, V>> entry;
  		ReferencableValue<K, V> value;
  		while (iter.hasNext()) {
  			entry = iter.next();
  			if (entry != null) {
  				value = entry.getValue();
  				if ((value != null)
  						&& ((value.isEnqueued()) || (value.get() == null))) {
  					value.enqueue();
  					value.clear();
  				}
  			}
  		}
  		Reference<? extends V> reference;
  		while ((reference = this.queue.poll()) != null) {
  			if (reference instanceof ReferencableValue<?, ?>) {
  				this.map.remove(((ReferencableValue<?, ?>) reference).getKey());
  			}
  			reference.clear();
  		}
  	}
docs: Clean the references that was released.