From 58bed5fae22deba1cf6e5574d5818520575bca9d Mon Sep 17 00:00:00 2001 From: Laurent Date: Fri, 2 Jan 2026 23:22:29 +0100 Subject: [PATCH] Switched to atomic operation --- .../controllers/ChatController.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/api/src/main/java/be/naaturel/boardmateapi/controllers/ChatController.java b/api/src/main/java/be/naaturel/boardmateapi/controllers/ChatController.java index 9df6041b..31dcef34 100644 --- a/api/src/main/java/be/naaturel/boardmateapi/controllers/ChatController.java +++ b/api/src/main/java/be/naaturel/boardmateapi/controllers/ChatController.java @@ -110,16 +110,17 @@ public class ChatController { ObjectMapper mapper = new ObjectMapper(); WebexWebhook payload = mapper.readValue(rawPayload, WebexWebhook.class); - Integer seen = expectedMessages.get(payload.getData().getId()); - if(seen != null){ - if(seen > 1){ - Logger.displayInfo("Rejected"); - expectedMessages.remove(payload.getData().getId()); + expectedMessages.compute(payload.getData().getId(), (key, seen) -> { + if (seen == null) { + Logger.displayInfo("Accepted message: " + key); + return 1; + } else if (seen >= 1) { + Logger.displayInfo("Rejected message: " + key); + return null; } else { - seen += 1; - expectedMessages.put(payload.getData().getId(), seen); + return seen + 1; } - } + }); Room room = webexService.getRoomById(payload.getData().getRoomId()); Message msg = webexService.fetchMessage(payload.getData().getId());