diff -r 76ed605b95a4 -r 1893a674db04 src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/EventDirectoryStream.java --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/EventDirectoryStream.java Tue Oct 01 18:47:30 2019 +0200 +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/EventDirectoryStream.java Wed Oct 02 19:26:33 2019 +0200 @@ -34,6 +34,7 @@ import java.util.Objects; import jdk.jfr.consumer.RecordedEvent; +import jdk.jfr.internal.JVM; import jdk.jfr.internal.Utils; import jdk.jfr.internal.consumer.ChunkParser.ParserConfiguration; @@ -80,6 +81,15 @@ @Override protected void process() throws IOException { + try { + JVM.getJVM().exclude(Thread.currentThread()); + processRecursionSafe(); + } finally { + JVM.getJVM().include(Thread.currentThread()); + } + } + + protected void processRecursionSafe() throws IOException { Dispatcher disp = dispatcher(); Path path;