From b1a234eba2f8dfada8ef08c6f05039f772523128 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Fri, 23 Sep 2022 13:10:38 +0300 Subject: [PATCH] Add clear of agg data before subscription update --- .../DefaultTbEntityDataSubscriptionService.java | 4 ++-- .../server/common/data/query/EntityData.java | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/subscription/DefaultTbEntityDataSubscriptionService.java b/application/src/main/java/org/thingsboard/server/service/subscription/DefaultTbEntityDataSubscriptionService.java index b583446f17..4a9dba3264 100644 --- a/application/src/main/java/org/thingsboard/server/service/subscription/DefaultTbEntityDataSubscriptionService.java +++ b/application/src/main/java/org/thingsboard/server/service/subscription/DefaultTbEntityDataSubscriptionService.java @@ -343,7 +343,7 @@ public class DefaultTbEntityDataSubscriptionService implements TbEntityDataSubsc ctx.createTimeSeriesSubscriptions(lastTsEntityMap, startTs, endTs, true); } ctx.sendWsMsg(update); - entityDataList.forEach(ed -> ed.getTimeseries().clear()); + entityDataList.forEach(EntityData::clearTsAndAggData); } finally { ctx.getWsLock().unlock(); } @@ -594,7 +594,7 @@ public class DefaultTbEntityDataSubscriptionService implements TbEntityDataSubsc ctx.createTimeSeriesSubscriptions(lastTsEntityMap, cmd.getStartTs(), cmd.getEndTs()); } ctx.sendWsMsg(update); - entityDataList.forEach(ed -> ed.getTimeseries().clear()); + entityDataList.forEach(EntityData::clearTsAndAggData); } finally { ctx.getWsLock().unlock(); } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityData.java b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityData.java index 2b24866ac4..e5ae5a757a 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityData.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/query/EntityData.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.common.data.query; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import lombok.RequiredArgsConstructor; import org.thingsboard.server.common.data.id.EntityId; @@ -33,4 +34,14 @@ public class EntityData { public EntityData(EntityId entityId, Map> latest, Map timeseries) { this(entityId, latest, timeseries, null); } + + @JsonIgnore + public void clearTsAndAggData() { + if (timeseries != null) { + timeseries.clear(); + } + if (aggLatest != null) { + aggLatest.clear(); + } + } }