diff -r 5fb8ececb9e6 -r 9316d02dd4a5 src/jdk.jfr/share/classes/jdk/jfr/consumer/EventParser.java --- a/src/jdk.jfr/share/classes/jdk/jfr/consumer/EventParser.java Mon Aug 05 23:57:47 2019 +0200 +++ b/src/jdk.jfr/share/classes/jdk/jfr/consumer/EventParser.java Fri Aug 09 01:18:18 2019 +0200 @@ -55,6 +55,7 @@ private int index; private boolean ordered; private long firstNanos; + private long lastNanos = Long.MAX_VALUE; private long thresholdNanos = -1; EventParser(TimeConverter timeConverter, EventType type, Parser[] parsers) { @@ -120,8 +121,12 @@ } endTicks += durationTicks; } - if (firstNanos > 0L) { - if (timeConverter.convertTimestamp(endTicks) < firstNanos) { + if (firstNanos != 0L || lastNanos != Long.MAX_VALUE) { + long eventEnd = timeConverter.convertTimestamp(endTicks); + if (eventEnd < firstNanos) { + return null; + } + if (eventEnd > lastNanos) { return null; } } @@ -173,6 +178,10 @@ this.firstNanos = firstNanos; } + public void setLastNanos(long lastNanos) { + this.lastNanos = lastNanos; + } + public void setOrdered(boolean ordered) { if (this.ordered == ordered) { return; @@ -180,4 +189,5 @@ this.ordered = ordered; this.index = 0; } + }