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.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

  protected volatile long maxSize;
    descriptor: J
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  protected volatile java.time.Duration maxAge;
    descriptor: Ljava/time/Duration;
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  private volatile java.util.function.Consumer<java.lang.Long> onCompleteHandler;
    descriptor: Ljava/util/function/Consumer;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/util/function/Consumer<Ljava/lang/Long;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 53
            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, java.util.List<jdk.jfr.Configuration>);
    descriptor: (Ljava/security/AccessControlContext;Ljava/nio/file/Path;Ljdk/jfr/internal/consumer/FileAccess;Ljdk/jfr/internal/PlatformRecording;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=6
        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
        start local 5 // java.util.List configurations
         0: .line 68
            aload 0 /* this */
            aload 1 /* acc */
            aload 4 /* recording */
            aload 5 /* configurations */
            invokespecial jdk.jfr.internal.consumer.AbstractEventStream.<init>:(Ljava/security/AccessControlContext;Ljdk/jfr/internal/PlatformRecording;Ljava/util/List;)V
         1: .line 61
            aload 0 /* this */
            iconst_0
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.threadExclusionLevel:I
         2: .line 69
            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 70
            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;
         4: .line 71
            return
        end local 5 // java.util.List configurations
        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    5     0            this  Ljdk/jfr/internal/consumer/EventDirectoryStream;
            0    5     1             acc  Ljava/security/AccessControlContext;
            0    5     2               p  Ljava/nio/file/Path;
            0    5     3      fileAccess  Ljdk/jfr/internal/consumer/FileAccess;
            0    5     4       recording  Ljdk/jfr/internal/PlatformRecording;
            0    5     5  configurations  Ljava/util/List<Ljdk/jfr/Configuration;>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/security/AccessControlContext;Ljava/nio/file/Path;Ljdk/jfr/internal/consumer/FileAccess;Ljdk/jfr/internal/PlatformRecording;Ljava/util/List<Ljdk/jfr/Configuration;>;)V
    MethodParameters:
                Name  Flags
      acc             
      p               
      fileAccess      
      recording       
      configurations  

  public void close();
    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 75
            aload 0 /* this */
            iconst_1
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.setClosed:(Z)V
         1: .line 76
            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 77
            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 78
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            ifnull 6
         4: .line 79
            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 80
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.getEndNanos:()J
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.onComplete:(J)V
         6: .line 82
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljdk/jfr/internal/consumer/EventDirectoryStream;

  public void setChunkCompleteHandler(java.util.function.Consumer<java.lang.Long>);
    descriptor: (Ljava/util/function/Consumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
        start local 1 // java.util.function.Consumer handler
         0: .line 85
            aload 0 /* this */
            aload 1 /* handler */
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.onCompleteHandler:Ljava/util/function/Consumer;
         1: .line 86
            return
        end local 1 // java.util.function.Consumer handler
        end local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljdk/jfr/internal/consumer/EventDirectoryStream;
            0    2     1  handler  Ljava/util/function/Consumer<Ljava/lang/Long;>;
    Signature: (Ljava/util/function/Consumer<Ljava/lang/Long;>;)V
    MethodParameters:
         Name  Flags
      handler  

  private void onComplete(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
        start local 1 // long epochNanos
         0: .line 89
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.onCompleteHandler:Ljava/util/function/Consumer;
            astore 3 /* handler */
        start local 3 // java.util.function.Consumer handler
         1: .line 90
            aload 3 /* handler */
            ifnull 3
         2: .line 91
            aload 3 /* handler */
            lload 1 /* epochNanos */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
         3: .line 93
      StackMap locals: java.util.function.Consumer
      StackMap stack:
            return
        end local 3 // java.util.function.Consumer handler
        end local 1 // long epochNanos
        end local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Ljdk/jfr/internal/consumer/EventDirectoryStream;
            0    4     1  epochNanos  J
            1    4     3     handler  Ljava/util/function/Consumer<Ljava/lang/Long;>;
    MethodParameters:
            Name  Flags
      epochNanos  

  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 97
            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 98
            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 102
            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 103
            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 107
            invokestatic jdk.jfr.internal.JVM.getJVM:()Ljdk/jfr/internal/JVM;
            astore 1 /* jvm */
        start local 1 // jdk.jfr.internal.JVM jvm
         1: .line 108
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 2 /* t */
        start local 2 // java.lang.Thread t
         2: .line 110
            aload 1 /* jvm */
            aload 2 /* t */
            invokevirtual jdk.jfr.internal.JVM.isExcluded:(Ljava/lang/Thread;)Z
            ifeq 5
         3: .line 111
            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 112
            goto 6
         5: .line 113
      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 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.processRecursionSafe:()V
         7: .line 116
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 3
         9: .line 117
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.threadExclusionLevel:I
            ifle 12
        10: .line 118
            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 119
            goto 13
        12: .line 120
      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 122
      StackMap locals:
      StackMap stack:
            aload 3
            athrow
        14: .line 117
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.threadExclusionLevel:I
            ifle 17
        15: .line 118
            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 119
            goto 18
        17: .line 120
      StackMap locals:
      StackMap stack:
            aload 1 /* jvm */
            aload 2 /* t */
            invokevirtual jdk.jfr.internal.JVM.include:(Ljava/lang/Thread;)V
        18: .line 123
      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=18, args_size=1
        start local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
         0: .line 126
            aconst_null
            astore 1 /* lastDisp */
        start local 1 // jdk.jfr.internal.consumer.Dispatcher lastDisp
         1: .line 127
            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 129
            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 130
            iload 4 /* validStartTime */
            ifeq 8
         6: .line 131
            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
            iconst_1
            invokevirtual jdk.jfr.internal.consumer.RepositoryFiles.firstPath:(JZ)Ljava/nio/file/Path;
            astore 3 /* path */
        start local 3 // java.nio.file.Path path
         7: .line 132
            goto 9
        end local 3 // java.nio.file.Path path
         8: .line 133
      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;
            iconst_1
            invokevirtual jdk.jfr.internal.consumer.RepositoryFiles.lastPath:(Z)Ljava/nio/file/Path;
            astore 3 /* path */
        start local 3 // java.nio.file.Path path
         9: .line 135
      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 136
            return
        11: .line 138
      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 139
            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 140
            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 141
            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 142
            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 143
            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 145
            goto 63
        23: .line 146
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.onMetadata:(Ljdk/jfr/internal/consumer/ChunkParser;)V
        24: .line 147
            goto 41
        25: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.dispatcher:()Ljdk/jfr/internal/consumer/Dispatcher;
            astore 2 /* disp */
        26: .line 149
            aload 2 /* disp */
            aload 1 /* lastDisp */
            if_acmpeq 32
        27: .line 150
            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
        28: .line 151
            aload 14 /* pc */
            lload 10 /* filterStart */
            putfield jdk.jfr.internal.consumer.ChunkParser$ParserConfiguration.filterStart:J
        29: .line 152
            aload 14 /* pc */
            lload 12 /* filterEnd */
            putfield jdk.jfr.internal.consumer.ChunkParser$ParserConfiguration.filterEnd:J
        30: .line 153
            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
        31: .line 154
            aload 2 /* disp */
            astore 1 /* lastDisp */
        end local 14 // jdk.jfr.internal.consumer.ChunkParser$ParserConfiguration pc
        32: .line 156
      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 35
        33: .line 157
            aload 0 /* this */
            aload 2 /* disp */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.processOrdered:(Ljdk/jfr/internal/consumer/Dispatcher;)V
        34: .line 158
            goto 36
        35: .line 159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* disp */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.processUnordered:(Ljdk/jfr/internal/consumer/Dispatcher;)Z
            pop
        36: .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.resetCache:()V
        37: .line 162
            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 41
        38: .line 163
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.close:()V
        39: .line 198
            aload 7 /* input */
            ifnull 40
            aload 7 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
        40: .line 164
      StackMap locals:
      StackMap stack:
            return
        41: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.isClosed:()Z
            ifne 42
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.isChunkFinished:()Z
            ifeq 25
        42: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.isLastChunk:()Z
            ifeq 45
        43: .line 198
            aload 7 /* input */
            ifnull 44
            aload 7 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
        44: .line 169
      StackMap locals:
      StackMap stack:
            return
        45: .line 172
      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 48
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.isFinalChunk:()Z
            ifeq 48
        46: .line 198
            aload 7 /* input */
            ifnull 47
            aload 7 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
        47: .line 174
      StackMap locals:
      StackMap stack:
            return
        48: .line 176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.isClosed:()Z
            ifeq 51
        49: .line 198
            aload 7 /* input */
            ifnull 50
            aload 7 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
        50: .line 178
      StackMap locals:
      StackMap stack:
            return
        51: .line 180
      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
        52: .line 181
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.getEndNanos:()J
            lstore 16 /* endChunkNanos */
        start local 16 // long endChunkNanos
        53: .line 182
            lload 14 /* durationNanos */
            lconst_0
            lcmp
            ifne 55
        54: .line 185
            lload 14 /* durationNanos */
            lconst_1
            ladd
            lstore 14 /* durationNanos */
        55: .line 187
      StackMap locals: long 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
            iconst_1
            invokevirtual jdk.jfr.internal.consumer.RepositoryFiles.nextPath:(JZ)Ljava/nio/file/Path;
            astore 3 /* path */
        56: .line 188
            aload 3 /* path */
            ifnonnull 59
        57: .line 198
            aload 7 /* input */
            ifnull 58
            aload 7 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
        58: .line 189
      StackMap locals:
      StackMap stack:
            return
        59: .line 191
      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
        60: .line 192
            aload 7 /* input */
            aload 3 /* path */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.setFile:(Ljava/nio/file/Path;)V
        61: .line 193
            aload 0 /* this */
            lload 16 /* endChunkNanos */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.onComplete:(J)V
        62: .line 194
            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 16 // long endChunkNanos
        end local 14 // long durationNanos
        63: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.isClosed:()Z
            ifeq 23
        end local 12 // long filterEnd
        end local 10 // long filterStart
        end local 8 // long segmentStart
        64: .line 198
            aload 7 /* input */
            ifnull 70
            aload 7 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
            goto 70
      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
        65: astore 5
            aload 7 /* input */
            ifnull 66
            aload 7 /* input */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
        end local 7 // jdk.jfr.internal.consumer.RecordingInput input
      StackMap locals:
      StackMap stack:
        66: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        67: astore 6
            aload 5
            ifnonnull 68
            aload 6
            astore 5
            goto 69
      StackMap locals:
      StackMap stack:
        68: aload 5
            aload 6
            if_acmpeq 69
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        69: aload 5
            athrow
        70: .line 199
      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   71     0            this  Ljdk/jfr/internal/consumer/EventDirectoryStream;
            1   71     1        lastDisp  Ljdk/jfr/internal/consumer/Dispatcher;
            2   71     2            disp  Ljdk/jfr/internal/consumer/Dispatcher;
            7    8     3            path  Ljava/nio/file/Path;
            9   71     3            path  Ljava/nio/file/Path;
            5   71     4  validStartTime  Z
           14   66     7           input  Ljdk/jfr/internal/consumer/RecordingInput;
           16   64     8    segmentStart  J
           19   64    10     filterStart  J
           22   64    12       filterEnd  J
           28   32    14              pc  Ljdk/jfr/internal/consumer/ChunkParser$ParserConfiguration;
           52   63    14   durationNanos  J
           53   63    16   endChunkNanos  J
      Exception table:
        from    to  target  type
          14    39      65  any
          41    43      65  any
          45    46      65  any
          48    49      65  any
          51    57      65  any
          59    64      65  any
          13    40      67  any
          41    44      67  any
          45    47      67  any
          48    50      67  any
          51    58      67  any
          59    67      67  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 202
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.recording:Ljdk/jfr/internal/PlatformRecording;
            ifnonnull 2
         1: .line 203
            iconst_0
            ireturn
         2: .line 205
      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 209
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.sortedCache:[Ljdk/jfr/consumer/RecordedEvent;
            ifnonnull 2
         1: .line 210
            aload 0 /* this */
            ldc 100000
            anewarray jdk.jfr.consumer.RecordedEvent
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.sortedCache:[Ljdk/jfr/consumer/RecordedEvent;
         2: .line 212
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* index */
        start local 2 // int index
         3: .line 214
      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 215
            aload 3 /* e */
            ifnonnull 6
         5: .line 216
            goto 10
         6: .line 218
      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 219
            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 221
      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 213
            goto 3
        10: .line 223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.onMetadata:(Ljdk/jfr/internal/consumer/ChunkParser;)V
        11: .line 225
            iload 2 /* index */
            ifne 14
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.isChunkFinished:()Z
            ifeq 14
        12: .line 226
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.onFlush:()V
        13: .line 227
            return
        14: .line 230
      StackMap locals:
      StackMap stack:
            iload 2 /* index */
            iconst_1
            if_icmple 16
        15: .line 231
            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
        16: .line 233
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        17: goto 20
        18: .line 234
      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
        19: .line 233
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 3 /* i */
            iload 2 /* index */
            if_icmplt 18
        end local 3 // int i
        21: .line 236
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.onFlush:()V
        22: .line 237
            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   23     0   this  Ljdk/jfr/internal/consumer/EventDirectoryStream;
            0   23     1      c  Ljdk/jfr/internal/consumer/Dispatcher;
            3   23     2  index  I
            4    9     3      e  Ljdk/jfr/consumer/RecordedEvent;
           17   21     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 242
      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 243
            aload 2 /* e */
            ifnonnull 4
         2: .line 244
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.onFlush:()V
         3: .line 245
            iconst_1
            ireturn
         4: .line 247
      StackMap locals: jdk.jfr.consumer.RecordedEvent
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jfr.internal.consumer.EventDirectoryStream.currentParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.EventDirectoryStream.onMetadata:(Ljdk/jfr/internal/consumer/ChunkParser;)V
         5: .line 248
            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
         6: .line 241
            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    7     0  this  Ljdk/jfr/internal/consumer/EventDirectoryStream;
            0    7     1     c  Ljdk/jfr/internal/consumer/Dispatcher;
            1    6     2     e  Ljdk/jfr/consumer/RecordedEvent;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      c     

  public void setMaxSize(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
        start local 1 // long maxSize
         0: .line 253
            aload 0 /* this */
            lload 1 /* maxSize */
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.maxSize:J
         1: .line 254
            return
        end local 1 // long maxSize
        end local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljdk/jfr/internal/consumer/EventDirectoryStream;
            0    2     1  maxSize  J
    MethodParameters:
         Name  Flags
      maxSize  

  public void setMaxAge(java.time.Duration);
    descriptor: (Ljava/time/Duration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
        start local 1 // java.time.Duration maxAge
         0: .line 257
            aload 0 /* this */
            aload 1 /* maxAge */
            putfield jdk.jfr.internal.consumer.EventDirectoryStream.maxAge:Ljava/time/Duration;
         1: .line 258
            return
        end local 1 // java.time.Duration maxAge
        end local 0 // jdk.jfr.internal.consumer.EventDirectoryStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/jfr/internal/consumer/EventDirectoryStream;
            0    2     1  maxAge  Ljava/time/Duration;
    MethodParameters:
        Name  Flags
      maxAge  
}
SourceFile: "EventDirectoryStream.java"
InnerClasses:
  final ParserConfiguration = jdk.jfr.internal.consumer.ChunkParser$ParserConfiguration of jdk.jfr.internal.consumer.ChunkParser