bson/src/main/org/bson/util/ClassMap.java
public T put(final Class<?> key, final T value) {
        try {
            return map.put(key, value);
        } finally {
            cache.clear();
        }
    }
public T put(final Class<?> key, final T value) {
        try {
            return map.put(key, value);
        } finally {
            cache.clear();
        }
    }
As per {@code java.util.Map}, associates the specified value with the specified key in this map.  If the map previously contained a
mapping for the key, the old value is replaced by the specified value.

@param key   a {@code Class} key
@param value the value for this class
@return the previous value associated with {@code key}, or null if there was no mapping for key.
@see java.util.Map#put(Object, Object)