@Override
    public void updateNode( Node node )
    {
        log.debug( "Updating node: {}", node.getUniqueIdentifier() );

        final PubSubService.UniqueIdentifier serviceIdentifier = node.getUniqueIdentifier().getServiceIdentifier();
        final Lock lock = serviceIdToNodesCache.getLock(serviceIdentifier);
        lock.lock();
        try {
            CacheUtil.removeValueFromMultiValuedCache( serviceIdToNodesCache, serviceIdentifier, node );
            CacheUtil.addValueToMultiValuedCache( serviceIdToNodesCache, serviceIdentifier, node, HashSet::new );
        } finally {
            lock.unlock();
        }
    }
Cache that holds all published items (mapped by node ID).
xmppserver/src/main/java/org/jivesoftware/openfire/pubsub/InMemoryPubSubPersistenceProvider.java