patsonluk commented on code in PR #909: URL: https://github.com/apache/solr/pull/909#discussion_r916198593
########## solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java: ########## @@ -246,6 +245,125 @@ public boolean canBeRemoved() { } } + /** + * A ConcurrentHashMap of active watcher by collection name + * + * <p>Each watcher DocCollectionWatch also contains the latest DocCollection (state) observed + */ + private static class DocCollectionWatches { + private final ConcurrentHashMap<String, StatefulCollectionWatch<DocCollectionWatcher>> + statefulWatchesByCollectionName = new ConcurrentHashMap<>(); + + /** + * Gets the DocCollection (state) of the collection which the corresponding watch last observed + * + * @param collection the collection name to get DocCollection on + * @return The last observed DocCollection(state). if null, that means there's no such + * collection. + */ + private DocCollection getDocCollection(String collection) { + StatefulCollectionWatch<DocCollectionWatcher> watch = + statefulWatchesByCollectionName.get(collection); + return watch != null ? watch.currentState : null; + } + + /** + * Gets the active collections (collections that exist) being watched + * + * @return an immutable set of active collection names + */ + private Set<String> activeCollections() { + return statefulWatchesByCollectionName.entrySet().stream() + .filter( + (Entry<String, StatefulCollectionWatch<DocCollectionWatcher>> entry) -> + entry.getValue().currentState != null) + .map(Entry::getKey) + .collect(Collectors.toUnmodifiableSet()); + } + + private Set<String> watchedCollections() { + return Collections.unmodifiableSet(statefulWatchesByCollectionName.keySet()); Review Comment: we dun have to but it's just a bit safer to outright prevent it 😊 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org