@Override
    public boolean addAll(Collection<? extends T> c) {
        boolean changed = super.addAll(c);
        if (changed) {
            // drop the transient set, will be rebuilt when/if needed
            synchronized(this) {
                knownGroupNamesInList = null;
            }
        }
        return changed;
    }
This method is called from several of the mutators to keep
the group set in sync with the full list. 

@param item The item to be added or removed if it is in the group set
@param addOrRemove True to add, false to remove
@return true if the given item is a group
xmppserver/src/main/java/org/jivesoftware/openfire/group/ConcurrentGroupList.java