From 3a00a792c3496e91aed38945eb87155b6c5515ba Mon Sep 17 00:00:00 2001 From: Sergey Matvienko Date: Fri, 14 Jan 2022 11:52:59 +0200 Subject: [PATCH] removed try-catch for checkSessionsTimeout because for actor all messages are processed sequentially --- .../device/DeviceActorMessageProcessor.java | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java b/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java index d8f0c38975..d6f68dbff0 100644 --- a/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java +++ b/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java @@ -966,21 +966,14 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor { final long expTime = System.currentTimeMillis() - systemContext.getSessionInactivityTimeout(); List expiredIds = null; - try { - for (Map.Entry kv : sessions.entrySet()) { //entry set are cached for stable sessions - if (kv.getValue().getLastActivityTime() < expTime) { - final UUID id = kv.getKey(); - if (expiredIds == null) { - expiredIds = new ArrayList<>(1); //most of the expired sessions is a single event - } - expiredIds.add(id); - + for (Map.Entry kv : sessions.entrySet()) { //entry set are cached for stable sessions + if (kv.getValue().getLastActivityTime() < expTime) { + final UUID id = kv.getKey(); + if (expiredIds == null) { + expiredIds = new ArrayList<>(1); //most of the expired sessions is a single event } + expiredIds.add(id); } - } catch (ConcurrentModificationException ignored) { - //Sessions are not thread safe and possible exceptions - //It is an extremely rare event - //Complete session check will perform on the next check } if (expiredIds != null) {