From c14fca5660c5dc0b833075ef7e978a919965b19d Mon Sep 17 00:00:00 2001 From: CalDescent Date: Sat, 8 Jul 2023 11:05:14 +0100 Subject: [PATCH] Improved filtering of online accounts data. --- .../org/qortal/controller/OnlineAccountsManager.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/qortal/controller/OnlineAccountsManager.java b/src/main/java/org/qortal/controller/OnlineAccountsManager.java index 224228b8..5e64161d 100644 --- a/src/main/java/org/qortal/controller/OnlineAccountsManager.java +++ b/src/main/java/org/qortal/controller/OnlineAccountsManager.java @@ -743,8 +743,14 @@ public class OnlineAccountsManager { if (onlineAccounts == null) onlineAccounts = this.latestBlocksOnlineAccounts.get(timestamp); - if (onlineAccounts != null) - blocksOnlineAccounts.removeAll(onlineAccounts); + if (onlineAccounts != null) { + // Remove accounts with matching timestamp, nonce, and public key + final Set finalOnlineAccounts = onlineAccounts; + blocksOnlineAccounts.removeIf(a1 -> finalOnlineAccounts.stream() + .anyMatch(a2 -> a2.getTimestamp() == a1.getTimestamp() && + Objects.equals(a2.getNonce(), a1.getNonce()) && + Arrays.equals(a2.getPublicKey(), a1.getPublicKey()))); + } } /**