From b7c69042c75a4e091b1fbb27209c325ef9250ebe Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Thu, 23 Mar 2017 17:15:47 +0300 Subject: [PATCH] diagnostics for EA-87698 --- platform/util/src/com/intellij/util/PausesStat.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/util/src/com/intellij/util/PausesStat.java b/platform/util/src/com/intellij/util/PausesStat.java index 9306b24bdbdc..df736b974b94 100644 --- a/platform/util/src/com/intellij/util/PausesStat.java +++ b/platform/util/src/com/intellij/util/PausesStat.java @@ -27,7 +27,7 @@ public class PausesStat { @NotNull private final String myName; private final Thread myEdtThread; private boolean started; - private long startTimeStamp; + private long startTimeStamp = System.currentTimeMillis(); private int maxDuration; private Object maxDurationDescription; private int totalNumberRecorded; @@ -51,9 +51,9 @@ public class PausesStat { public void started() { assertEdt(); + startTimeStamp = System.currentTimeMillis(); assert !started; started = true; - startTimeStamp = System.currentTimeMillis(); } private void assertEdt() { @@ -64,7 +64,11 @@ public class PausesStat { assertEdt(); assert started; long finishStamp = System.currentTimeMillis(); + long startTimeStamp = this.startTimeStamp; + if (finishStamp < startTimeStamp) throw new IllegalStateException("startTimeStamp: " + startTimeStamp + "; finishStamp: " + finishStamp); int duration = (int)(finishStamp - startTimeStamp); + if (duration < 0) throw new IllegalStateException("startTimeStamp: " + startTimeStamp + "; finishStamp: " + finishStamp+"; duration: "+duration); + started = false; duration = Math.min(duration, Short.MAX_VALUE); if (duration > maxDuration) {