public synchronized Object put()

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);
    }