public class jdk.jfr.internal.consumer.EventDirectoryStream extends jdk.jfr.internal.consumer.AbstractEventStream
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.jfr.internal.consumer.EventDirectoryStream
  super_class: jdk.jfr.internal.consumer.AbstractEventStream
{
  private static final java.util.Comparator<? super jdk.jfr.consumer.RecordedEvent> EVENT_COMPARATOR;
    descriptor: Ljava/util/Comparator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Comparator<-Ljdk/jfr/consumer/RecordedEvent;>;

  private final jdk.jfr.internal.consumer.RepositoryFiles repositoryFiles;
    descriptor: Ljdk/jfr/internal/consumer/RepositoryFiles;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.jfr.internal.PlatformRecording recording;
    descriptor: Ljdk/jfr/internal/PlatformRecording;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.jfr.internal.consumer.FileAccess fileAccess;
    descriptor: Ljdk/jfr/internal/consumer/FileAccess;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private jdk.jfr.internal.consumer.ChunkParser currentParser;
    descriptor: Ljdk/jfr/internal/consumer/ChunkParser;
    flags: (0x0002) ACC_PRIVATE

  private long currentChunkStartNanos;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private jdk.jfr.consumer.RecordedEvent[] sortedCache;
    descriptor: [Ljdk/jfr/consumer/RecordedEvent;
    flags: (0x0002) ACC_PRIVATE

  private int threadExclusionLevel;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 49
            invokestatic jdk.jfr.internal.consumer.JdkJfrConsumer.instance:()Ljdk/jfr/internal/consumer/JdkJfrConsumer;
            invokevirtual jdk.jfr.internal.consumer.JdkJfrConsumer.eventComparator:()Ljava/util/Comparator;
            putstatic jdk.jfr.internal.consumer.EventDirectoryStream.EVENT_COMPARATOR:Ljava/util/Comparator;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.security.AccessControlContext, java.nio.file.Path, jdk.jfr.internal.consumer.FileAccess, jdk.jfr.internal.PlatformRecording);
    descriptor: (Ljava/security/AccessControlContext;Ljava/nio/file/Path;Ljdk/jfr/internal/consumer/FileAccess;Ljdk/jfr/internal/PlatformRecording;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
        start local 1 // java.security.AccessControlContext acc
        start local 2 // java.nio.file.Path p
        start local 3 // jdk.jfr.internal.consumer.FileAccess fileAccess
        start local 4 // jdk.jfr.internal.PlatformRecording recording
         0: .line 61
            aload 0 /* this */
            aload 1 /* acc */
            aload 4 /* recording */
            invokespecial jdk.jfr.internal.consumer.AbstractEventStream.<init>:(Ljava/security/AccessControlContext;Ljdk/jfr/internal/PlatformRecording;)V
         1: .line 58
            aload 0 /* this */
            iconst_0
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.threadExclusionLevel:I
         2: .line 62
            aload 0 /* this */
            aload 3 /* fileAccess */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.jfr.internal.consumer.FileAccess
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.fileAccess:Ljdk/jfr/internal/consumer/FileAccess;
         3: .line 63
            aload 0 /* this */
            aload 4 /* recording */
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.recording:Ljdk/jfr/internal/PlatformRecording;
         4: .line 64
            aload 0 /* this */
            new jdk.jfr.internal.consumer.RepositoryFiles
            dup
            aload 3 /* fileAccess */
            aload 2 /* p */
            invokespecial jdk.jfr.internal.consumer.RepositoryFiles.<init>:(Ljdk/jfr/internal/consumer/FileAccess;Ljava/nio/file/Path;)V
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.repositoryFiles:Ljdk/jfr/internal/consumer/RepositoryFiles;
         5: .line 65
            return
        end local 4 // jdk.jfr.internal.PlatformRecording recording
        end local 3 // jdk.jfr.internal.consumer.FileAccess fileAccess
        end local 2 // java.nio.file.Path p
        end local 1 // java.security.AccessControlContext acc
        end local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Ljdk/jfr/internal/consumer/EventDirectoryStream;
            0    6     1         acc  Ljava/security/AccessControlContext;
            0    6     2           p  Ljava/nio/file/Path;
            0    6     3  fileAccess  Ljdk/jfr/internal/consumer/FileAccess;
            0    6     4   recording  Ljdk/jfr/internal/PlatformRecording;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      acc         
      p           
      fileAccess  
      recording   

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
         0: .line 69
            aload 0 /* this */
            iconst_1
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.setClosed:(Z)V
         1: .line 70
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.dispatcher:()Ljdk/jfr/internal/consumer/Dispatcher;
            invokevirtual jdk.jfr.internal.consumer.Dispatcher.runCloseActions:()V
         2: .line 71
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.repositoryFiles:Ljdk/jfr/internal/consumer/RepositoryFiles;
            invokevirtual jdk.jfr.internal.consumer.RepositoryFiles.close:()V
         3: .line 72
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            ifnull 5
         4: .line 73
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.close:()V
         5: .line 75
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljdk/jfr/internal/consumer/EventDirectoryStream;

  public void start();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
         0: .line 79
            aload 0 /* this */
            invokestatic java.time.Instant.now:()Ljava/time/Instant;
            invokestatic jdk.jfr.internal.Utils.timeToNanos:(Ljava/time/Instant;)J
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.start:(J)V
         1: .line 80
            return
        end local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/jfr/internal/consumer/EventDirectoryStream;

  public void startAsync();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
         0: .line 84
            aload 0 /* this */
            invokestatic java.time.Instant.now:()Ljava/time/Instant;
            invokestatic jdk.jfr.internal.Utils.timeToNanos:(Ljava/time/Instant;)J
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.startAsync:(J)V
         1: .line 85
            return
        end local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/jfr/internal/consumer/EventDirectoryStream;

  protected void process();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
         0: .line 89
            invokestatic jdk.jfr.internal.JVM.getJVM:()Ljdk/jfr/internal/JVM;
            astore 1 /* jvm */
        start local 1 // jdk.jfr.internal.JVM jvm
         1: .line 90
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 2 /* t */
        start local 2 // java.lang.Thread t
         2: .line 92
            aload 1 /* jvm */
            aload 2 /* t */
            invokevirtual jdk.jfr.internal.JVM.isExcluded:(Ljava/lang/Thread;)Z
            ifeq 5
         3: .line 93
            aload 0 /* this */
            dup
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.threadExclusionLevel:I
            iconst_1
            iadd
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.threadExclusionLevel:I
         4: .line 94
            goto 6
         5: .line 95
      StackMap locals: jdk.jfr.internal.JVM java.lang.Thread
      StackMap stack:
            aload 1 /* jvm */
            aload 2 /* t */
            invokevirtual jdk.jfr.internal.JVM.exclude:(Ljava/lang/Thread;)V
         6: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.processRecursionSafe:()V
         7: .line 98
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 3
         9: .line 99
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.threadExclusionLevel:I
            ifle 12
        10: .line 100
            aload 0 /* this */
            dup
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.threadExclusionLevel:I
            iconst_1
            isub
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.threadExclusionLevel:I
        11: .line 101
            goto 13
        12: .line 102
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* jvm */
            aload 2 /* t */
            invokevirtual jdk.jfr.internal.JVM.include:(Ljava/lang/Thread;)V
        13: .line 104
      StackMap locals:
      StackMap stack:
            aload 3
            athrow
        14: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.threadExclusionLevel:I
            ifle 17
        15: .line 100
            aload 0 /* this */
            dup
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.threadExclusionLevel:I
            iconst_1
            isub
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.threadExclusionLevel:I
        16: .line 101
            goto 18
        17: .line 102
      StackMap locals:
      StackMap stack:
            aload 1 /* jvm */
            aload 2 /* t */
            invokevirtual jdk.jfr.internal.JVM.include:(Ljava/lang/Thread;)V
        18: .line 105
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Thread t
        end local 1 // jdk.jfr.internal.JVM jvm
        end local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Ljdk/jfr/internal/consumer/EventDirectoryStream;
            1   19     1   jvm  Ljdk/jfr/internal/JVM;
            2   19     2     t  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
           2     8       8  any
    Exceptions:
      throws java.io.IOException

  protected void processRecursionSafe();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=16, args_size=1
        start local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
         0: .line 108
            aconst_null
            astore 1 /* lastDisp */
        start local 1 // jdk.jfr.internal.consumer.Dispatcher lastDisp
         1: .line 109
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.dispatcher:()Ljdk/jfr/internal/consumer/Dispatcher;
            astore 2 /* disp */
        start local 2 // jdk.jfr.internal.consumer.Dispatcher disp
         2: .line 111
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.recording:Ljdk/jfr/internal/PlatformRecording;
            ifnonnull 3
            aload 2 /* disp */
            getfield jdk.jfr.internal.consumer.Dispatcher.startTime:Ljava/time/Instant;
            ifnonnull 3
            iconst_0
            goto 4
      StackMap locals: jdk.jfr.internal.consumer.Dispatcher jdk.jfr.internal.consumer.Dispatcher
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* validStartTime */
        start local 4 // boolean validStartTime
         5: .line 112
            iload 4 /* validStartTime */
            ifeq 8
         6: .line 113
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.repositoryFiles:Ljdk/jfr/internal/consumer/RepositoryFiles;
            aload 2 /* disp */
            getfield jdk.jfr.internal.consumer.Dispatcher.startNanos:J
            invokevirtual jdk.jfr.internal.consumer.RepositoryFiles.firstPath:(J)Ljava/nio/file/Path;
            astore 3 /* path */
        start local 3 // java.nio.file.Path path
         7: .line 114
            goto 9
        end local 3 // java.nio.file.Path path
         8: .line 115
      StackMap locals: jdk.jfr.internal.consumer.EventDirectoryStream jdk.jfr.internal.consumer.Dispatcher jdk.jfr.internal.consumer.Dispatcher top int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.repositoryFiles:Ljdk/jfr/internal/consumer/RepositoryFiles;
            invokevirtual jdk.jfr.internal.consumer.RepositoryFiles.lastPath:()Ljava/nio/file/Path;
            astore 3 /* path */
        start local 3 // java.nio.file.Path path
         9: .line 117
      StackMap locals: jdk.jfr.internal.consumer.EventDirectoryStream jdk.jfr.internal.consumer.Dispatcher jdk.jfr.internal.consumer.Dispatcher java.nio.file.Path int
      StackMap stack:
            aload 3 /* path */
            ifnonnull 11
        10: .line 118
            return
        11: .line 120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.repositoryFiles:Ljdk/jfr/internal/consumer/RepositoryFiles;
            aload 3 /* path */
            invokevirtual jdk.jfr.internal.consumer.RepositoryFiles.getTimestamp:(Ljava/nio/file/Path;)J
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.currentChunkStartNanos:J
        12: .line 121
            aconst_null
            astore 5
            aconst_null
            astore 6
        13: new jdk.jfr.internal.consumer.RecordingInput
            dup
            aload 3 /* path */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.fileAccess:Ljdk/jfr/internal/consumer/FileAccess;
            invokespecial jdk.jfr.internal.consumer.RecordingInput.<init>:(Ljava/io/File;Ljdk/jfr/internal/consumer/FileAccess;)V
            astore 7 /* input */
        start local 7 // jdk.jfr.internal.consumer.RecordingInput input
        14: .line 122
            aload 0 /* this */
            new jdk.jfr.internal.consumer.ChunkParser
            dup
            aload 7 /* input */
            aload 2 /* disp */
            getfield jdk.jfr.internal.consumer.Dispatcher.parserConfiguration:Ljdk/jfr/internal/consumer/ChunkParser$ParserConfiguration;
            invokespecial jdk.jfr.internal.consumer.ChunkParser.<init>:(Ljdk/jfr/internal/consumer/RecordingInput;Ljdk/jfr/internal/consumer/ChunkParser$ParserConfiguration;)V
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
        15: .line 123
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.getStartNanos:()J
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.getChunkDuration:()J
            ladd
            lstore 8 /* segmentStart */
        start local 8 // long segmentStart
        16: .line 124
            iload 4 /* validStartTime */
            ifeq 17
            aload 2 /* disp */
            getfield jdk.jfr.internal.consumer.Dispatcher.startNanos:J
            goto 18
      StackMap locals: jdk.jfr.internal.consumer.EventDirectoryStream jdk.jfr.internal.consumer.Dispatcher jdk.jfr.internal.consumer.Dispatcher java.nio.file.Path int java.lang.Throwable java.lang.Throwable jdk.jfr.internal.consumer.RecordingInput long
      StackMap stack:
        17: lload 8 /* segmentStart */
      StackMap locals:
      StackMap stack: long
        18: lstore 10 /* filterStart */
        start local 10 // long filterStart
        19: .line 125
            aload 2 /* disp */
            getfield jdk.jfr.internal.consumer.Dispatcher.endTime:Ljava/time/Instant;
            ifnull 20
            aload 2 /* disp */
            getfield jdk.jfr.internal.consumer.Dispatcher.endNanos:J
            goto 21
      StackMap locals: long
      StackMap stack:
        20: ldc 9223372036854775807
      StackMap locals:
      StackMap stack: long
        21: lstore 12 /* filterEnd */
        start local 12 // long filterEnd
        22: .line 127
            goto 59
        23: .line 129
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.dispatcher:()Ljdk/jfr/internal/consumer/Dispatcher;
            astore 2 /* disp */
        24: .line 130
            aload 2 /* disp */
            aload 1 /* lastDisp */
            if_acmpeq 31
        25: .line 131
            aload 2 /* disp */
            getfield jdk.jfr.internal.consumer.Dispatcher.parserConfiguration:Ljdk/jfr/internal/consumer/ChunkParser$ParserConfiguration;
            astore 14 /* pc */
        start local 14 // jdk.jfr.internal.consumer.ChunkParser$ParserConfiguration pc
        26: .line 132
            aload 14 /* pc */
            lload 10 /* filterStart */
            putfield jdk.jfr.internal.consumer.ChunkParser$ParserConfiguration.filterStart:J
        27: .line 133
            aload 14 /* pc */
            lload 12 /* filterEnd */
            putfield jdk.jfr.internal.consumer.ChunkParser$ParserConfiguration.filterEnd:J
        28: .line 134
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            aload 14 /* pc */
            iconst_1
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.updateConfiguration:(Ljdk/jfr/internal/consumer/ChunkParser$ParserConfiguration;Z)V
        29: .line 135
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.getFlushOperation:()Ljava/lang/Runnable;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.setFlushOperation:(Ljava/lang/Runnable;)V
        30: .line 136
            aload 2 /* disp */
            astore 1 /* lastDisp */
        end local 14 // jdk.jfr.internal.consumer.ChunkParser$ParserConfiguration pc
        31: .line 138
      StackMap locals:
      StackMap stack:
            aload 2 /* disp */
            getfield jdk.jfr.internal.consumer.Dispatcher.parserConfiguration:Ljdk/jfr/internal/consumer/ChunkParser$ParserConfiguration;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser$ParserConfiguration.isOrdered:()Z
            ifeq 34
        32: .line 139
            aload 0 /* this */
            aload 2 /* disp */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.processOrdered:(Ljdk/jfr/internal/consumer/Dispatcher;)V
        33: .line 140
            goto 35
        34: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* disp */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.processUnordered:(Ljdk/jfr/internal/consumer/Dispatcher;)Z
            pop
        35: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.getStartNanos:()J
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.getChunkDuration:()J
            ladd
            lload 12 /* filterEnd */
            lcmp
            ifle 39
        36: .line 144
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.close:()V
        37: .line 177
            aload 7 /* input */
            ifnull 38
            aload 7 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
        38: .line 145
      StackMap locals:
      StackMap stack:
            return
        39: .line 128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.isClosed:()Z
            ifne 40
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.isChunkFinished:()Z
            ifeq 23
        40: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.isLastChunk:()Z
            ifeq 43
        41: .line 177
            aload 7 /* input */
            ifnull 42
            aload 7 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
        42: .line 150
      StackMap locals:
      StackMap stack:
            return
        43: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.repositoryFiles:Ljdk/jfr/internal/consumer/RepositoryFiles;
            invokevirtual jdk.jfr.internal.consumer.RepositoryFiles.hasFixedPath:()Z
            ifeq 46
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.isFinalChunk:()Z
            ifeq 46
        44: .line 177
            aload 7 /* input */
            ifnull 45
            aload 7 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
        45: .line 155
      StackMap locals:
      StackMap stack:
            return
        46: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.isClosed:()Z
            ifeq 49
        47: .line 177
            aload 7 /* input */
            ifnull 48
            aload 7 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
        48: .line 159
      StackMap locals:
      StackMap stack:
            return
        49: .line 161
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.getChunkDuration:()J
            lstore 14 /* durationNanos */
        start local 14 // long durationNanos
        50: .line 162
            lload 14 /* durationNanos */
            lconst_0
            lcmp
            ifne 52
        51: .line 165
            lload 14 /* durationNanos */
            lconst_1
            ladd
            lstore 14 /* durationNanos */
        52: .line 167
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.repositoryFiles:Ljdk/jfr/internal/consumer/RepositoryFiles;
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentChunkStartNanos:J
            lload 14 /* durationNanos */
            ladd
            invokevirtual jdk.jfr.internal.consumer.RepositoryFiles.nextPath:(J)Ljava/nio/file/Path;
            astore 3 /* path */
        53: .line 168
            aload 3 /* path */
            ifnonnull 56
        54: .line 177
            aload 7 /* input */
            ifnull 55
            aload 7 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
        55: .line 169
      StackMap locals:
      StackMap stack:
            return
        56: .line 171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.repositoryFiles:Ljdk/jfr/internal/consumer/RepositoryFiles;
            aload 3 /* path */
            invokevirtual jdk.jfr.internal.consumer.RepositoryFiles.getTimestamp:(Ljava/nio/file/Path;)J
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.currentChunkStartNanos:J
        57: .line 172
            aload 7 /* input */
            aload 3 /* path */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.setFile:(Ljava/nio/file/Path;)V
        58: .line 173
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.newChunkParser:()Ljdk/jfr/internal/consumer/ChunkParser;
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
        end local 14 // long durationNanos
        59: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.isClosed:()Z
            ifeq 39
        end local 12 // long filterEnd
        end local 10 // long filterStart
        end local 8 // long segmentStart
        60: .line 177
            aload 7 /* input */
            ifnull 66
            aload 7 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
            goto 66
      StackMap locals: jdk.jfr.internal.consumer.EventDirectoryStream jdk.jfr.internal.consumer.Dispatcher jdk.jfr.internal.consumer.Dispatcher java.nio.file.Path int java.lang.Throwable java.lang.Throwable jdk.jfr.internal.consumer.RecordingInput
      StackMap stack: java.lang.Throwable
        61: astore 5
            aload 7 /* input */
            ifnull 62
            aload 7 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
        end local 7 // jdk.jfr.internal.consumer.RecordingInput input
      StackMap locals:
      StackMap stack:
        62: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        63: astore 6
            aload 5
            ifnonnull 64
            aload 6
            astore 5
            goto 65
      StackMap locals:
      StackMap stack:
        64: aload 5
            aload 6
            if_acmpeq 65
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        65: aload 5
            athrow
        66: .line 178
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean validStartTime
        end local 3 // java.nio.file.Path path
        end local 2 // jdk.jfr.internal.consumer.Dispatcher disp
        end local 1 // jdk.jfr.internal.consumer.Dispatcher lastDisp
        end local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   67     0            this  Ljdk/jfr/internal/consumer/EventDirectoryStream;
            1   67     1        lastDisp  Ljdk/jfr/internal/consumer/Dispatcher;
            2   67     2            disp  Ljdk/jfr/internal/consumer/Dispatcher;
            7    8     3            path  Ljava/nio/file/Path;
            9   67     3            path  Ljava/nio/file/Path;
            5   67     4  validStartTime  Z
           14   62     7           input  Ljdk/jfr/internal/consumer/RecordingInput;
           16   60     8    segmentStart  J
           19   60    10     filterStart  J
           22   60    12       filterEnd  J
           26   31    14              pc  Ljdk/jfr/internal/consumer/ChunkParser$ParserConfiguration;
           50   59    14   durationNanos  J
      Exception table:
        from    to  target  type
          14    37      61  any
          39    41      61  any
          43    44      61  any
          46    47      61  any
          49    54      61  any
          56    60      61  any
          13    38      63  any
          39    42      63  any
          43    45      63  any
          46    48      63  any
          49    55      63  any
          56    63      63  any
    Exceptions:
      throws java.io.IOException

  private boolean isLastChunk();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
         0: .line 181
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.recording:Ljdk/jfr/internal/PlatformRecording;
            ifnonnull 2
         1: .line 182
            iconst_0
            ireturn
         2: .line 184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.recording:Ljdk/jfr/internal/PlatformRecording;
            invokevirtual jdk.jfr.internal.PlatformRecording.getFinalChunkStartNanos:()J
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.getStartNanos:()J
            lcmp
            iflt 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/jfr/internal/consumer/EventDirectoryStream;

  private void processOrdered(jdk.jfr.internal.consumer.Dispatcher);
    descriptor: (Ljdk/jfr/internal/consumer/Dispatcher;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
        start local 1 // jdk.jfr.internal.consumer.Dispatcher c
         0: .line 188
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.sortedCache:[Ljdk/jfr/consumer/RecordedEvent;
            ifnonnull 2
         1: .line 189
            aload 0 /* this */
            ldc 100000
            anewarray jdk.jfr.consumer.RecordedEvent
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.sortedCache:[Ljdk/jfr/consumer/RecordedEvent;
         2: .line 191
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* index */
        start local 2 // int index
         3: .line 193
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.readStreamingEvent:()Ljdk/jfr/consumer/RecordedEvent;
            astore 3 /* e */
        start local 3 // jdk.jfr.consumer.RecordedEvent e
         4: .line 194
            aload 3 /* e */
            ifnonnull 6
         5: .line 195
            goto 10
         6: .line 197
      StackMap locals: jdk.jfr.consumer.RecordedEvent
      StackMap stack:
            iload 2 /* index */
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.sortedCache:[Ljdk/jfr/consumer/RecordedEvent;
            arraylength
            if_icmpne 8
         7: .line 198
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.sortedCache:[Ljdk/jfr/consumer/RecordedEvent;
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.sortedCache:[Ljdk/jfr/consumer/RecordedEvent;
            arraylength
            iconst_2
            imul
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast jdk.jfr.consumer.RecordedEvent[]
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.sortedCache:[Ljdk/jfr/consumer/RecordedEvent;
         8: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.sortedCache:[Ljdk/jfr/consumer/RecordedEvent;
            iload 2 /* index */
            iinc 2 /* index */ 1
            aload 3 /* e */
            aastore
        end local 3 // jdk.jfr.consumer.RecordedEvent e
         9: .line 192
            goto 3
        10: .line 203
      StackMap locals:
      StackMap stack:
            iload 2 /* index */
            ifne 12
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.isChunkFinished:()Z
            ifeq 12
        11: .line 204
            return
        12: .line 207
      StackMap locals:
      StackMap stack:
            iload 2 /* index */
            iconst_1
            if_icmple 14
        13: .line 208
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.sortedCache:[Ljdk/jfr/consumer/RecordedEvent;
            iconst_0
            iload 2 /* index */
            getstatic jdk.jfr.internal.consumer.EventDirectoryStream.EVENT_COMPARATOR:Ljava/util/Comparator;
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;IILjava/util/Comparator;)V
        14: .line 210
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        15: goto 18
        16: .line 211
      StackMap locals: int
      StackMap stack:
            aload 1 /* c */
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.sortedCache:[Ljdk/jfr/consumer/RecordedEvent;
            iload 3 /* i */
            aaload
            invokevirtual jdk.jfr.internal.consumer.Dispatcher.dispatch:(Ljdk/jfr/consumer/RecordedEvent;)V
        17: .line 210
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 3 /* i */
            iload 2 /* index */
            if_icmplt 16
        end local 3 // int i
        19: .line 213
            return
        end local 2 // int index
        end local 1 // jdk.jfr.internal.consumer.Dispatcher c
        end local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Ljdk/jfr/internal/consumer/EventDirectoryStream;
            0   20     1      c  Ljdk/jfr/internal/consumer/Dispatcher;
            3   20     2  index  I
            4    9     3      e  Ljdk/jfr/consumer/RecordedEvent;
           15   19     3      i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      c     

  private boolean processUnordered(jdk.jfr.internal.consumer.Dispatcher);
    descriptor: (Ljdk/jfr/internal/consumer/Dispatcher;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
        start local 1 // jdk.jfr.internal.consumer.Dispatcher c
         0: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.readStreamingEvent:()Ljdk/jfr/consumer/RecordedEvent;
            astore 2 /* e */
        start local 2 // jdk.jfr.consumer.RecordedEvent e
         1: .line 219
            aload 2 /* e */
            ifnonnull 3
         2: .line 220
            iconst_1
            ireturn
         3: .line 222
      StackMap locals: jdk.jfr.consumer.RecordedEvent
      StackMap stack:
            aload 1 /* c */
            aload 2 /* e */
            invokevirtual jdk.jfr.internal.consumer.Dispatcher.dispatch:(Ljdk/jfr/consumer/RecordedEvent;)V
        end local 2 // jdk.jfr.consumer.RecordedEvent e
         4: .line 217
            goto 0
        end local 1 // jdk.jfr.internal.consumer.Dispatcher c
        end local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/jfr/internal/consumer/EventDirectoryStream;
            0    5     1     c  Ljdk/jfr/internal/consumer/Dispatcher;
            1    4     2     e  Ljdk/jfr/consumer/RecordedEvent;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      c     
}
SourceFile: "EventDirectoryStream.java"
InnerClasses:
  final ParserConfiguration = jdk.jfr.internal.consumer.ChunkParser$ParserConfiguration of jdk.jfr.internal.consumer.ChunkParser