in src/main/java/org/apache/commons/logging/impl/WeakHashtable.java [230:248]
public synchronized Object put(final Object key, final Object value) {
// check for nulls, ensuring semantics match superclass
Objects.requireNonNull(key, "key");
Objects.requireNonNull(value, "value");
// for performance reasons, only purge every
// MAX_CHANGES_BEFORE_PURGE times
if (changeCount++ > MAX_CHANGES_BEFORE_PURGE) {
purge();
changeCount = 0;
}
// do a partial purge more often
else if (changeCount % PARTIAL_PURGE_COUNT == 0) {
purgeOne();
}
final Referenced keyRef = new Referenced(key, queue);
return super.put(keyRef, value);
}