diff --git a/src/main/java/org/opensearch/securityanalytics/findings/FindingsService.java b/src/main/java/org/opensearch/securityanalytics/findings/FindingsService.java index dc4a957a2..7960c514d 100644 --- a/src/main/java/org/opensearch/securityanalytics/findings/FindingsService.java +++ b/src/main/java/org/opensearch/securityanalytics/findings/FindingsService.java @@ -5,7 +5,6 @@ package org.opensearch.securityanalytics.findings; import java.util.ArrayList; -import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -14,7 +13,6 @@ import org.apache.logging.log4j.Logger; import org.opensearch.OpenSearchStatusException; import org.opensearch.action.ActionListener; -import org.opensearch.action.support.GroupedActionListener; import org.opensearch.client.Client; import org.opensearch.client.node.NodeClient; import org.opensearch.commons.alerting.AlertingPluginInterface; @@ -60,17 +58,15 @@ public void onResponse(GetDetectorResponse getDetectorResponse) { // Get all monitor ids from detector Detector detector = getDetectorResponse.getDetector(); List monitorIds = detector.getMonitorIds(); - // Using GroupedActionListener here as we're going to issue one GetFindingsActions for each monitorId - ActionListener multiGetFindingsListener = new GroupedActionListener<>(new ActionListener<>() { + ActionListener getFindingsResponseListener = new ActionListener<>() { @Override - public void onResponse(Collection responses) { + public void onResponse(GetFindingsResponse resp) { Integer totalFindings = 0; List findings = new ArrayList<>(); // Merge all findings into one response - for(GetFindingsResponse resp : responses) { - totalFindings += resp.getTotalFindings(); - findings.addAll(resp.getFindings()); - } + totalFindings += resp.getTotalFindings(); + findings.addAll(resp.getFindings()); + GetFindingsResponse masterResponse = new GetFindingsResponse( totalFindings, findings @@ -84,7 +80,7 @@ public void onFailure(Exception e) { log.error("Failed to fetch findings for detector " + detectorId, e); listener.onFailure(SecurityAnalyticsException.wrap(e)); } - }, monitorIds.size()); + }; // monitor --> detectorId mapping Map monitorToDetectorMapping = new HashMap<>(); @@ -97,7 +93,7 @@ public void onFailure(Exception e) { monitorIds, DetectorMonitorConfig.getFindingsIndex(detector.getDetectorType()), table, - multiGetFindingsListener + getFindingsResponseListener ); }