From b1bc922d1656496f48972336d12547a56b8a2874 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 22 Nov 2017 23:07:03 -0800 Subject: [PATCH] If user specifies an interval of 0, convert aggregation to NONE This prevents an endless loop that can hang up the server, and is probably what the user intuitively wanted. Merge remote-tracking branch 'origin/zero_interval' into zero_interval Fix merge issue Fix whitespace to match original More whitespace --- .../plugin/telemetry/handlers/TelemetryRestMsgHandler.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/extensions-core/src/main/java/org/thingsboard/server/extensions/core/plugin/telemetry/handlers/TelemetryRestMsgHandler.java b/extensions-core/src/main/java/org/thingsboard/server/extensions/core/plugin/telemetry/handlers/TelemetryRestMsgHandler.java index 874bf89670..7e92fc15f1 100644 --- a/extensions-core/src/main/java/org/thingsboard/server/extensions/core/plugin/telemetry/handlers/TelemetryRestMsgHandler.java +++ b/extensions-core/src/main/java/org/thingsboard/server/extensions/core/plugin/telemetry/handlers/TelemetryRestMsgHandler.java @@ -134,7 +134,10 @@ public class TelemetryRestMsgHandler extends DefaultRestMsgHandler { msg.getResponseHolder().setResult(new ResponseEntity<>(HttpStatus.BAD_REQUEST)); return; } - Aggregation agg = Aggregation.valueOf(request.getParameter("agg", Aggregation.NONE.name())); + + // If interval is 0, convert this to a NONE aggregation, which is probably what the user really wanted + Aggregation agg = (interval.isPresent() && interval.get() == 0) ? Aggregation.valueOf(Aggregation.NONE.name()) : + Aggregation.valueOf(request.getParameter("agg", Aggregation.NONE.name())); List queries = keys.stream().map(key -> new BaseTsKvQuery(key, startTs.get(), endTs.get(), interval.get(), limit.orElse(TelemetryWebsocketMsgHandler.DEFAULT_LIMIT), agg)) .collect(Collectors.toList());