@Override
    public void putAll(Map<? extends String, ? extends GroovyRunner> m) {
        Map<String, GroovyRunner> map = getMap();
        writeLock.lock();
        try {
            cachedValues = null;
            for (Map.Entry<? extends String, ? extends GroovyRunner> entry : m.entrySet()) {
                if (entry.getKey() != null && entry.getValue() != null) {
                    map.put(entry.getKey(), entry.getValue());
                }
            }
        } finally {
            writeLock.unlock();
        }
    }
@ Override public void putAll ( Map < ? extends String , ? extends GroovyRunner > m ) { Map < String , GroovyRunner > map = getMap ( ) ; writeLock . lock ( ) ; try { cachedValues = null ; for ( Map . Entry < ? extends String , ? extends GroovyRunner > entry : m . entrySet ( ) ) { if ( entry . getKey ( ) != null && entry . getValue ( ) != null ) { map . put ( entry . getKey ( ) , entry . getValue ( ) ) ; } } } finally { writeLock . unlock ( ) ; } }
Adds all entries from the given Map to the registry.
Any entries in the provided Map that contain a {@code null}
key or value will be ignored.

@param m entries to add to the registry
@throws NullPointerException if the given Map is {@code null}