src/main/java/org/jivesoftware/smack/util/collections/AbstractReferenceMap.java
public V put(K key, V value) {
        if (key == null) {
            throw new NullPointerException("null keys not allowed");
        }
        if (value == null) {
            throw new NullPointerException("null values not allowed");
        }

        purgeBeforeWrite();
        return super.put(key, value);
    }
public V put(K key, V value) {
        if (key == null) {
            throw new NullPointerException("null keys not allowed");
        }
        if (value == null) {
            throw new NullPointerException("null values not allowed");
        }

        purgeBeforeWrite();
        return super.put(key, value);
    }
Puts a key-value mapping into this map. Neither the key nor the value may
be null.

@param key
the key to add, must not be null
@param value
the value to add, must not be null
@return the value previously mapped to this key, null if none
@throws NullPointerException
if either the key or value is null