nfsantos commented on code in PR #1276:
URL: https://github.com/apache/jackrabbit-oak/pull/1276#discussion_r1461868615


##########
oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/async/ElasticResultRowAsyncIterator.java:
##########
@@ -333,16 +339,24 @@ public void onSuccess(SearchResponse<ObjectNode> 
searchResponse) {
                 }
 
                 LOG.trace("Emitting {} search hits, for a total of {} scanned 
results", searchHits.size(), scannedRows);
+
+                Set<SearchHitListener> listenersWithHits = new HashSet<>();
+
                 for (Hit<ObjectNode> hit : searchHits) {
                     for (SearchHitListener l : searchHitListeners) {
-                        l.on(hit);
+                        if (l.on(hit)) {
+                            listenersWithHits.add(l);
+                        }
                     }
                 }
+                // if any listener has not processed any hit, it means we need 
to load more data since there could be
+                // listeners waiting for some results before triggering a new 
scan
+                boolean areAllListenersProcessed = 
listenersWithHits.containsAll(searchHitListeners);

Review Comment:
   Nitpick: comparing the size of the sets is more efficient and produces the 
same result: if the sets have the same size, then all listeners got a hit. 



-- 
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: dev-unsubscr...@jackrabbit.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to