private void flushPendingNodes( PubSubService.UniqueIdentifier serviceIdentifier )
    {
        log.trace( "Flushing pending nodes for service: {}", serviceIdentifier );

        // TODO verify that this is thread-safe (hint: it's not!)
        final Iterator<Map.Entry<Node.UniqueIdentifier, List<NodeOperation>>> iterator = nodesToProcess.entrySet().iterator();
        while (iterator.hasNext()) {
            final Map.Entry<Node.UniqueIdentifier,List<NodeOperation>> entry = iterator.next();
            if ( serviceIdentifier.owns( entry.getKey() ) )
            {
                entry.getValue().forEach( this::process );
                iterator.remove();
            }
        }
    }
Cache for recently accessed published items.
xmppserver/src/main/java/org/jivesoftware/openfire/pubsub/CachingPubsubPersistenceProvider.java