From 18916bf693164500f6bdbe317dd4167e2482bc4b Mon Sep 17 00:00:00 2001 From: IrynaMatveieva Date: Mon, 5 May 2025 08:32:31 +0300 Subject: [PATCH] added check for timestamp --- .../server/controller/CalculatedFieldController.java | 2 +- .../service/cf/ctx/state/BaseCalculatedFieldState.java | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/CalculatedFieldController.java b/application/src/main/java/org/thingsboard/server/controller/CalculatedFieldController.java index 7e4e041600..a28146ab6e 100644 --- a/application/src/main/java/org/thingsboard/server/controller/CalculatedFieldController.java +++ b/application/src/main/java/org/thingsboard/server/controller/CalculatedFieldController.java @@ -279,7 +279,7 @@ public class CalculatedFieldController extends BaseController { lastUpdateTimestamp = Math.max(lastUpdateTimestamp, maxTs); } } - return lastUpdateTimestamp; + return lastUpdateTimestamp == -1 ? System.currentTimeMillis() : lastUpdateTimestamp; } private & HasTenantId, I extends EntityId> void checkReferencedEntities(CalculatedFieldConfiguration calculatedFieldConfig, SecurityUser user) throws ThingsboardException { diff --git a/application/src/main/java/org/thingsboard/server/service/cf/ctx/state/BaseCalculatedFieldState.java b/application/src/main/java/org/thingsboard/server/service/cf/ctx/state/BaseCalculatedFieldState.java index 35879ac9aa..e4b03b4cab 100644 --- a/application/src/main/java/org/thingsboard/server/service/cf/ctx/state/BaseCalculatedFieldState.java +++ b/application/src/main/java/org/thingsboard/server/service/cf/ctx/state/BaseCalculatedFieldState.java @@ -113,10 +113,8 @@ public abstract class BaseCalculatedFieldState implements CalculatedFieldState { if (entry instanceof SingleValueArgumentEntry singleValueArgumentEntry) { this.lastUpdateTimestamp = singleValueArgumentEntry.getTs(); } else if (entry instanceof TsRollingArgumentEntry tsRollingArgumentEntry) { - Map.Entry lastEntry = tsRollingArgumentEntry.getTsRecords().pollLastEntry(); - if (lastEntry != null) { - this.lastUpdateTimestamp = lastEntry.getKey(); - } + Map.Entry lastEntry = tsRollingArgumentEntry.getTsRecords().lastEntry(); + this.lastUpdateTimestamp = (lastEntry != null) ? lastEntry.getKey() : System.currentTimeMillis(); } }