Refactor detectMultipleHolderNames for efficient use of RAM.

Fixes issue #7006 (Out Of Memory Exception thrown)
This commit is contained in:
jmacxx 2024-01-24 12:04:08 -06:00
parent 4d4c9e3186
commit bc4a46b3df
No known key found for this signature in database
GPG key ID: 155297BABFE94A1B

View file

@ -146,7 +146,11 @@ public class MultipleHolderNameDetection {
///////////////////////////////////////////////////////////////////////////////////////////
public void detectMultipleHolderNames() {
String previous = suspiciousDisputesByTraderMap.toString();
// compare the count of all suspicious disputes before/after updating
int previous = suspiciousDisputesByTraderMap.values().stream()
.mapToInt(List::size)
.sum();
getAllDisputesByTraderMap().forEach((key, value) -> {
Set<String> userNames = value.stream()
.map(dispute -> {
@ -161,8 +165,12 @@ public class MultipleHolderNameDetection {
suspiciousDisputesByTraderMap.put(key, value);
}
});
String updated = suspiciousDisputesByTraderMap.toString();
if (!previous.equals(updated)) {
int updated = suspiciousDisputesByTraderMap.values().stream()
.mapToInt(List::size)
.sum();
if (previous != updated) {
listeners.forEach(Listener::onSuspiciousDisputeDetected);
}
}