private void flushPendingNode( Node.UniqueIdentifier uniqueIdentifier )
    {
        log.trace( "Flushing pending node: {} for service: {}", uniqueIdentifier.getNodeId(), uniqueIdentifier.getServiceIdentifier().getServiceId() );

        nodesToProcess.computeIfPresent( uniqueIdentifier , ( key, operations ) -> {
            operations.forEach( operation -> log.trace("- {}", operation) );
            // Returning null causes the mapping to removed from nodesToProcess.
            return null;
        } );
        // TODO verify if this is having the desired effect. - nodes could be in a hierarchy, which could warrant for flushing the entire tree.
        // TODO verify that this is thread-safe.
        nodesToProcess.computeIfPresent( uniqueIdentifier , ( key, operations ) -> {
            operations.forEach( this::process );
            // Returning null causes the mapping to removed from nodesToProcess.
            return null;
        } );
    }
Cache for recently accessed published items.
xmppserver/src/main/java/org/jivesoftware/openfire/pubsub/CachingPubsubPersistenceProvider.java