From a8b1dc8c07326f713fba73a6b8295d2e70f77e30 Mon Sep 17 00:00:00 2001 From: Luck Date: Sat, 2 Jan 2021 20:08:56 +0000 Subject: [PATCH] Only store ids of received messages for 1 hour to prevent high memory usage on instances with high uptime (#2807) --- .../common/messaging/LuckPermsMessagingService.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/me/lucko/luckperms/common/messaging/LuckPermsMessagingService.java b/common/src/main/java/me/lucko/luckperms/common/messaging/LuckPermsMessagingService.java index 2020dcccc..af7465c54 100644 --- a/common/src/main/java/me/lucko/luckperms/common/messaging/LuckPermsMessagingService.java +++ b/common/src/main/java/me/lucko/luckperms/common/messaging/LuckPermsMessagingService.java @@ -36,6 +36,7 @@ import me.lucko.luckperms.common.messaging.message.UpdateMessageImpl; import me.lucko.luckperms.common.messaging.message.UserUpdateMessageImpl; import me.lucko.luckperms.common.model.User; import me.lucko.luckperms.common.plugin.LuckPermsPlugin; +import me.lucko.luckperms.common.util.ExpiringSet; import me.lucko.luckperms.common.util.gson.GsonProvider; import me.lucko.luckperms.common.util.gson.JObject; @@ -51,8 +52,6 @@ import net.luckperms.api.messenger.message.type.UserUpdateMessage; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; -import java.util.Collections; -import java.util.HashSet; import java.util.Objects; import java.util.Set; import java.util.UUID; @@ -73,7 +72,7 @@ public class LuckPermsMessagingService implements InternalMessagingService, Inco this.messenger = messengerProvider.obtain(this); Objects.requireNonNull(this.messenger, "messenger"); - this.receivedMessages = Collections.synchronizedSet(new HashSet<>()); + this.receivedMessages = new ExpiringSet<>(1, TimeUnit.HOURS); this.updateBuffer = new PushUpdateBuffer(plugin); }