diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/DurationUtils.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/DurationUtils.java index 350631843..0bf6661e1 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/DurationUtils.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/DurationUtils.java @@ -30,6 +30,8 @@ import org.joda.time.format.DateTimeFormatter; public enum DurationUtils { INSTANCE; + private static final int MAX_TIME_SPAN = 500; + private static final DateTimeFormatter YYYY_MM_DD = DateTimeFormat.forPattern("yyyy-MM-dd"); private static final DateTimeFormatter YYYY_MM_DD_HH = DateTimeFormat.forPattern("yyyy-MM-dd HH"); private static final DateTimeFormatter YYYY_MM_DD_HHMM = DateTimeFormat.forPattern("yyyy-MM-dd HHmm"); @@ -119,9 +121,11 @@ public enum DurationUtils { break; } i++; - if (i > 500) { + if (i > MAX_TIME_SPAN) { throw new UnexpectedException( - "Duration data error, step: " + step.name() + ", start: " + startTimeBucket + ", end: " + endTimeBucket); + "Duration data error, the span between the start time and the end time is too large, step: " + + step.name() + ", start: " + startTimeBucket + ", end: " + endTimeBucket + + ", max time span: " + MAX_TIME_SPAN); } } while (endTimeBucket != durations.get(durations.size() - 1).getPoint());