void sync(@Nonnull final MUCRoom room)
    {
        final Lock lock = ROOM_CACHE.getLock(room.getName());
        lock.lock();
        try {
            Log.trace("Syncing room '{}' of service '{}' (destroy: {})", room.getName(), serviceName, room.isDestroyed);
            if (room.isDestroyed) {
                ROOM_CACHE.remove(room.getName());
                localRooms.remove(room.getName());
                updateNonPersistentRoomStat(null, room);
            } else {
                final MUCRoom oldValue = ROOM_CACHE.put(room.getName(), room);
                localRooms.put(room.getName(), room);
                updateNonPersistentRoomStat(oldValue, room);
            }
        } finally {
            lock.unlock();
        }
    }
Makes available the current state of the provided MUCRoom instance to all nodes in the Openfire cluster (if the
local server is part of such a cluster). This method should be used whenever a MUCRoom instance has been changed.

@param room The room for which to persist state changes across the Openfire cluster.
xmppserver/src/main/java/org/jivesoftware/openfire/muc/spi/LocalMUCRoomManager.java