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 9cbe110180..de7f25023f 100644 --- a/application/src/main/java/org/thingsboard/server/controller/CalculatedFieldController.java +++ b/application/src/main/java/org/thingsboard/server/controller/CalculatedFieldController.java @@ -277,7 +277,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(); } }