@Override
    public Collection<V> values() {
        // custom class needed here to suppress value.remove()
        return Collections.unmodifiableCollection(super.values());
    }
Be aware that removing a property through the iterator of the returned key set might cause unexpected behavior,
as not all event handlers will be notified with all data required for cache updates to be processed.
xmppserver/src/main/java/org/jivesoftware/openfire/group/DefaultGroupPropertyMap.java