public final class jdk.jfr.consumer.RecordingFile implements java.io.Closeable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.jfr.consumer.RecordingFile
  super_class: java.lang.Object
{
  private boolean isLastEventInChunk;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final java.io.File file;
    descriptor: Ljava/io/File;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  private boolean eof;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.jfr.consumer.RecordingFile this
        start local 1 // java.nio.file.Path file
         0: .line 82
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 83
            aload 0 /* this */
            aload 1 /* file */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            putfield jdk.jfr.consumer.RecordingFile.file:Ljava/io/File;
         2: .line 84
            aload 0 /* this */
            new jdk.jfr.internal.consumer.RecordingInput
            dup
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.file:Ljava/io/File;
            getstatic jdk.jfr.internal.consumer.FileAccess.UNPRIVILEGED:Ljdk/jfr/internal/consumer/FileAccess;
            invokespecial jdk.jfr.internal.consumer.RecordingInput.<init>:(Ljava/io/File;Ljdk/jfr/internal/consumer/FileAccess;)V
            putfield jdk.jfr.consumer.RecordingFile.input:Ljdk/jfr/internal/consumer/RecordingInput;
         3: .line 85
            aload 0 /* this */
            invokevirtual jdk.jfr.consumer.RecordingFile.findNext:()V
         4: .line 86
            return
        end local 1 // java.nio.file.Path file
        end local 0 // jdk.jfr.consumer.RecordingFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/jfr/consumer/RecordingFile;
            0    5     1  file  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  public jdk.jfr.consumer.RecordedEvent readEvent();
    descriptor: ()Ljdk/jfr/consumer/RecordedEvent;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // jdk.jfr.consumer.RecordingFile this
         0: .line 99
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.eof:Z
            ifeq 3
         1: .line 100
            aload 0 /* this */
            invokevirtual jdk.jfr.consumer.RecordingFile.ensureOpen:()V
         2: .line 101
            new java.io.EOFException
            dup
            invokespecial java.io.EOFException.<init>:()V
            athrow
         3: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield jdk.jfr.consumer.RecordingFile.isLastEventInChunk:Z
         4: .line 104
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.nextEvent:Ljdk/jfr/consumer/RecordedEvent;
            astore 1 /* event */
        start local 1 // jdk.jfr.consumer.RecordedEvent event
         5: .line 105
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.chunkParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.readEvent:()Ljdk/jfr/consumer/RecordedEvent;
            putfield jdk.jfr.consumer.RecordingFile.nextEvent:Ljdk/jfr/consumer/RecordedEvent;
         6: .line 106
            goto 8
         7: .line 107
      StackMap locals: jdk.jfr.consumer.RecordedEvent
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.chunkParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.readEvent:()Ljdk/jfr/consumer/RecordedEvent;
            putfield jdk.jfr.consumer.RecordingFile.nextEvent:Ljdk/jfr/consumer/RecordedEvent;
         8: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.nextEvent:Ljdk/jfr/consumer/RecordedEvent;
            getstatic jdk.jfr.internal.consumer.ChunkParser.FLUSH_MARKER:Ljdk/jfr/consumer/RecordedEvent;
            if_acmpeq 7
         9: .line 109
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.nextEvent:Ljdk/jfr/consumer/RecordedEvent;
            ifnonnull 12
        10: .line 110
            aload 0 /* this */
            iconst_1
            putfield jdk.jfr.consumer.RecordingFile.isLastEventInChunk:Z
        11: .line 111
            aload 0 /* this */
            invokevirtual jdk.jfr.consumer.RecordingFile.findNext:()V
        12: .line 113
      StackMap locals:
      StackMap stack:
            aload 1 /* event */
            areturn
        end local 1 // jdk.jfr.consumer.RecordedEvent event
        end local 0 // jdk.jfr.consumer.RecordingFile this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Ljdk/jfr/consumer/RecordingFile;
            5   13     1  event  Ljdk/jfr/consumer/RecordedEvent;
    Exceptions:
      throws java.io.IOException

  public boolean hasMoreEvents();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.consumer.RecordingFile this
         0: .line 124
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.eof:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // jdk.jfr.consumer.RecordingFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/jfr/consumer/RecordingFile;

  public java.util.List<jdk.jfr.EventType> readEventTypes();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // jdk.jfr.consumer.RecordingFile this
         0: .line 136
            aload 0 /* this */
            invokevirtual jdk.jfr.consumer.RecordingFile.ensureOpen:()V
         1: .line 137
            aconst_null
            astore 1 /* previous */
        start local 1 // jdk.jfr.internal.MetadataDescriptor previous
         2: .line 138
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* types */
        start local 2 // java.util.List types
         3: .line 139
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* foundIds */
        start local 3 // java.util.HashSet foundIds
         4: .line 140
            aconst_null
            astore 4
            aconst_null
            astore 5
         5: new jdk.jfr.internal.consumer.RecordingInput
            dup
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.file:Ljava/io/File;
            getstatic jdk.jfr.internal.consumer.FileAccess.UNPRIVILEGED:Ljdk/jfr/internal/consumer/FileAccess;
            invokespecial jdk.jfr.internal.consumer.RecordingInput.<init>:(Ljava/io/File;Ljdk/jfr/internal/consumer/FileAccess;)V
            astore 6 /* ri */
        start local 6 // jdk.jfr.internal.consumer.RecordingInput ri
         6: .line 141
            new jdk.jfr.internal.consumer.ChunkHeader
            dup
            aload 6 /* ri */
            invokespecial jdk.jfr.internal.consumer.ChunkHeader.<init>:(Ljdk/jfr/internal/consumer/RecordingInput;)V
            astore 7 /* ch */
        start local 7 // jdk.jfr.internal.consumer.ChunkHeader ch
         7: .line 142
            aload 7 /* ch */
            aconst_null
            aload 2 /* types */
            aload 3 /* foundIds */
            invokestatic jdk.jfr.consumer.RecordingFile.aggregateEventTypeForChunk:(Ljdk/jfr/internal/consumer/ChunkHeader;Ljdk/jfr/internal/MetadataDescriptor;Ljava/util/List;Ljava/util/HashSet;)Ljdk/jfr/internal/MetadataDescriptor;
            pop
         8: .line 143
            goto 11
         9: .line 144
      StackMap locals: jdk.jfr.consumer.RecordingFile jdk.jfr.internal.MetadataDescriptor java.util.List java.util.HashSet java.lang.Throwable java.lang.Throwable jdk.jfr.internal.consumer.RecordingInput jdk.jfr.internal.consumer.ChunkHeader
      StackMap stack:
            aload 7 /* ch */
            invokevirtual jdk.jfr.internal.consumer.ChunkHeader.nextHeader:()Ljdk/jfr/internal/consumer/ChunkHeader;
            astore 7 /* ch */
        10: .line 145
            aload 7 /* ch */
            aload 1 /* previous */
            aload 2 /* types */
            aload 3 /* foundIds */
            invokestatic jdk.jfr.consumer.RecordingFile.aggregateEventTypeForChunk:(Ljdk/jfr/internal/consumer/ChunkHeader;Ljdk/jfr/internal/MetadataDescriptor;Ljava/util/List;Ljava/util/HashSet;)Ljdk/jfr/internal/MetadataDescriptor;
            astore 1 /* previous */
        11: .line 143
      StackMap locals:
      StackMap stack:
            aload 7 /* ch */
            invokevirtual jdk.jfr.internal.consumer.ChunkHeader.isLastChunk:()Z
            ifeq 9
        end local 7 // jdk.jfr.internal.consumer.ChunkHeader ch
        12: .line 147
            aload 6 /* ri */
            ifnull 18
            aload 6 /* ri */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
            goto 18
      StackMap locals: jdk.jfr.consumer.RecordingFile jdk.jfr.internal.MetadataDescriptor java.util.List java.util.HashSet java.lang.Throwable java.lang.Throwable jdk.jfr.internal.consumer.RecordingInput
      StackMap stack: java.lang.Throwable
        13: astore 4
            aload 6 /* ri */
            ifnull 14
            aload 6 /* ri */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
        end local 6 // jdk.jfr.internal.consumer.RecordingInput ri
      StackMap locals:
      StackMap stack:
        14: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 5
            aload 4
            ifnonnull 16
            aload 5
            astore 4
            goto 17
      StackMap locals:
      StackMap stack:
        16: aload 4
            aload 5
            if_acmpeq 17
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        17: aload 4
            athrow
        18: .line 148
      StackMap locals:
      StackMap stack:
            aload 2 /* types */
            areturn
        end local 3 // java.util.HashSet foundIds
        end local 2 // java.util.List types
        end local 1 // jdk.jfr.internal.MetadataDescriptor previous
        end local 0 // jdk.jfr.consumer.RecordingFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Ljdk/jfr/consumer/RecordingFile;
            2   19     1  previous  Ljdk/jfr/internal/MetadataDescriptor;
            3   19     2     types  Ljava/util/List<Ljdk/jfr/EventType;>;
            4   19     3  foundIds  Ljava/util/HashSet<Ljava/lang/Long;>;
            6   14     6        ri  Ljdk/jfr/internal/consumer/RecordingInput;
            7   12     7        ch  Ljdk/jfr/internal/consumer/ChunkHeader;
      Exception table:
        from    to  target  type
           6    12      13  any
           5    15      15  any
    Exceptions:
      throws java.io.IOException
    Signature: ()Ljava/util/List<Ljdk/jfr/EventType;>;

  java.util.List<jdk.jfr.internal.Type> readTypes();
    descriptor: ()Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // jdk.jfr.consumer.RecordingFile this
         0: .line 152
            aload 0 /* this */
            invokevirtual jdk.jfr.consumer.RecordingFile.ensureOpen:()V
         1: .line 153
            aconst_null
            astore 1 /* previous */
        start local 1 // jdk.jfr.internal.MetadataDescriptor previous
         2: .line 154
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* types */
        start local 2 // java.util.List types
         3: .line 155
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* foundIds */
        start local 3 // java.util.HashSet foundIds
         4: .line 156
            aconst_null
            astore 4
            aconst_null
            astore 5
         5: new jdk.jfr.internal.consumer.RecordingInput
            dup
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.file:Ljava/io/File;
            getstatic jdk.jfr.internal.consumer.FileAccess.UNPRIVILEGED:Ljdk/jfr/internal/consumer/FileAccess;
            invokespecial jdk.jfr.internal.consumer.RecordingInput.<init>:(Ljava/io/File;Ljdk/jfr/internal/consumer/FileAccess;)V
            astore 6 /* ri */
        start local 6 // jdk.jfr.internal.consumer.RecordingInput ri
         6: .line 157
            new jdk.jfr.internal.consumer.ChunkHeader
            dup
            aload 6 /* ri */
            invokespecial jdk.jfr.internal.consumer.ChunkHeader.<init>:(Ljdk/jfr/internal/consumer/RecordingInput;)V
            astore 7 /* ch */
        start local 7 // jdk.jfr.internal.consumer.ChunkHeader ch
         7: .line 158
            aload 7 /* ch */
            invokevirtual jdk.jfr.internal.consumer.ChunkHeader.awaitFinished:()V
         8: .line 159
            aload 0 /* this */
            aload 7 /* ch */
            aconst_null
            aload 2 /* types */
            aload 3 /* foundIds */
            invokevirtual jdk.jfr.consumer.RecordingFile.aggregateTypeForChunk:(Ljdk/jfr/internal/consumer/ChunkHeader;Ljdk/jfr/internal/MetadataDescriptor;Ljava/util/List;Ljava/util/HashSet;)Ljdk/jfr/internal/MetadataDescriptor;
            pop
         9: .line 160
            goto 12
        10: .line 161
      StackMap locals: jdk.jfr.consumer.RecordingFile jdk.jfr.internal.MetadataDescriptor java.util.List java.util.HashSet java.lang.Throwable java.lang.Throwable jdk.jfr.internal.consumer.RecordingInput jdk.jfr.internal.consumer.ChunkHeader
      StackMap stack:
            aload 7 /* ch */
            invokevirtual jdk.jfr.internal.consumer.ChunkHeader.nextHeader:()Ljdk/jfr/internal/consumer/ChunkHeader;
            astore 7 /* ch */
        11: .line 162
            aload 0 /* this */
            aload 7 /* ch */
            aload 1 /* previous */
            aload 2 /* types */
            aload 3 /* foundIds */
            invokevirtual jdk.jfr.consumer.RecordingFile.aggregateTypeForChunk:(Ljdk/jfr/internal/consumer/ChunkHeader;Ljdk/jfr/internal/MetadataDescriptor;Ljava/util/List;Ljava/util/HashSet;)Ljdk/jfr/internal/MetadataDescriptor;
            astore 1 /* previous */
        12: .line 160
      StackMap locals:
      StackMap stack:
            aload 7 /* ch */
            invokevirtual jdk.jfr.internal.consumer.ChunkHeader.isLastChunk:()Z
            ifeq 10
        end local 7 // jdk.jfr.internal.consumer.ChunkHeader ch
        13: .line 164
            aload 6 /* ri */
            ifnull 19
            aload 6 /* ri */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
            goto 19
      StackMap locals: jdk.jfr.consumer.RecordingFile jdk.jfr.internal.MetadataDescriptor java.util.List java.util.HashSet java.lang.Throwable java.lang.Throwable jdk.jfr.internal.consumer.RecordingInput
      StackMap stack: java.lang.Throwable
        14: astore 4
            aload 6 /* ri */
            ifnull 15
            aload 6 /* ri */
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
        end local 6 // jdk.jfr.internal.consumer.RecordingInput ri
      StackMap locals:
      StackMap stack:
        15: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 5
            aload 4
            ifnonnull 17
            aload 5
            astore 4
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 4
            aload 5
            if_acmpeq 18
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        18: aload 4
            athrow
        19: .line 165
      StackMap locals:
      StackMap stack:
            aload 2 /* types */
            areturn
        end local 3 // java.util.HashSet foundIds
        end local 2 // java.util.List types
        end local 1 // jdk.jfr.internal.MetadataDescriptor previous
        end local 0 // jdk.jfr.consumer.RecordingFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Ljdk/jfr/consumer/RecordingFile;
            2   20     1  previous  Ljdk/jfr/internal/MetadataDescriptor;
            3   20     2     types  Ljava/util/List<Ljdk/jfr/internal/Type;>;
            4   20     3  foundIds  Ljava/util/HashSet<Ljava/lang/Long;>;
            6   15     6        ri  Ljdk/jfr/internal/consumer/RecordingInput;
            7   13     7        ch  Ljdk/jfr/internal/consumer/ChunkHeader;
      Exception table:
        from    to  target  type
           6    13      14  any
           5    16      16  any
    Exceptions:
      throws java.io.IOException
    Signature: ()Ljava/util/List<Ljdk/jfr/internal/Type;>;

  private jdk.jfr.internal.MetadataDescriptor aggregateTypeForChunk(jdk.jfr.internal.consumer.ChunkHeader, jdk.jfr.internal.MetadataDescriptor, java.util.List<jdk.jfr.internal.Type>, java.util.HashSet<java.lang.Long>);
    descriptor: (Ljdk/jfr/internal/consumer/ChunkHeader;Ljdk/jfr/internal/MetadataDescriptor;Ljava/util/List;Ljava/util/HashSet;)Ljdk/jfr/internal/MetadataDescriptor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=5
        start local 0 // jdk.jfr.consumer.RecordingFile this
        start local 1 // jdk.jfr.internal.consumer.ChunkHeader ch
        start local 2 // jdk.jfr.internal.MetadataDescriptor previous
        start local 3 // java.util.List types
        start local 4 // java.util.HashSet foundIds
         0: .line 169
            aload 1 /* ch */
            aload 2 /* previous */
            invokevirtual jdk.jfr.internal.consumer.ChunkHeader.readMetadata:(Ljdk/jfr/internal/MetadataDescriptor;)Ljdk/jfr/internal/MetadataDescriptor;
            astore 5 /* m */
        start local 5 // jdk.jfr.internal.MetadataDescriptor m
         1: .line 170
            aload 5 /* m */
            invokevirtual jdk.jfr.internal.MetadataDescriptor.getTypes:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 6
      StackMap locals: jdk.jfr.consumer.RecordingFile jdk.jfr.internal.consumer.ChunkHeader jdk.jfr.internal.MetadataDescriptor java.util.List java.util.HashSet jdk.jfr.internal.MetadataDescriptor top java.util.Iterator
      StackMap stack:
         2: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 6 /* t */
        start local 6 // jdk.jfr.internal.Type t
         3: .line 171
            aload 4 /* foundIds */
            aload 6 /* t */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifne 6
         4: .line 172
            aload 3 /* types */
            aload 6 /* t */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 173
            aload 4 /* foundIds */
            aload 6 /* t */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // jdk.jfr.internal.Type t
         6: .line 170
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 176
            aload 5 /* m */
            areturn
        end local 5 // jdk.jfr.internal.MetadataDescriptor m
        end local 4 // java.util.HashSet foundIds
        end local 3 // java.util.List types
        end local 2 // jdk.jfr.internal.MetadataDescriptor previous
        end local 1 // jdk.jfr.internal.consumer.ChunkHeader ch
        end local 0 // jdk.jfr.consumer.RecordingFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Ljdk/jfr/consumer/RecordingFile;
            0    8     1        ch  Ljdk/jfr/internal/consumer/ChunkHeader;
            0    8     2  previous  Ljdk/jfr/internal/MetadataDescriptor;
            0    8     3     types  Ljava/util/List<Ljdk/jfr/internal/Type;>;
            0    8     4  foundIds  Ljava/util/HashSet<Ljava/lang/Long;>;
            1    8     5         m  Ljdk/jfr/internal/MetadataDescriptor;
            3    6     6         t  Ljdk/jfr/internal/Type;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljdk/jfr/internal/consumer/ChunkHeader;Ljdk/jfr/internal/MetadataDescriptor;Ljava/util/List<Ljdk/jfr/internal/Type;>;Ljava/util/HashSet<Ljava/lang/Long;>;)Ljdk/jfr/internal/MetadataDescriptor;
    MethodParameters:
          Name  Flags
      ch        
      previous  
      types     
      foundIds  

  private static jdk.jfr.internal.MetadataDescriptor aggregateEventTypeForChunk(jdk.jfr.internal.consumer.ChunkHeader, jdk.jfr.internal.MetadataDescriptor, java.util.List<jdk.jfr.EventType>, java.util.HashSet<java.lang.Long>);
    descriptor: (Ljdk/jfr/internal/consumer/ChunkHeader;Ljdk/jfr/internal/MetadataDescriptor;Ljava/util/List;Ljava/util/HashSet;)Ljdk/jfr/internal/MetadataDescriptor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // jdk.jfr.internal.consumer.ChunkHeader ch
        start local 1 // jdk.jfr.internal.MetadataDescriptor previous
        start local 2 // java.util.List types
        start local 3 // java.util.HashSet foundIds
         0: .line 180
            aload 0 /* ch */
            aload 1 /* previous */
            invokevirtual jdk.jfr.internal.consumer.ChunkHeader.readMetadata:(Ljdk/jfr/internal/MetadataDescriptor;)Ljdk/jfr/internal/MetadataDescriptor;
            astore 4 /* m */
        start local 4 // jdk.jfr.internal.MetadataDescriptor m
         1: .line 181
            aload 4 /* m */
            invokevirtual jdk.jfr.internal.MetadataDescriptor.getEventTypes:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 6
      StackMap locals: jdk.jfr.internal.consumer.ChunkHeader jdk.jfr.internal.MetadataDescriptor java.util.List java.util.HashSet jdk.jfr.internal.MetadataDescriptor top java.util.Iterator
      StackMap stack:
         2: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.EventType
            astore 5 /* t */
        start local 5 // jdk.jfr.EventType t
         3: .line 182
            aload 3 /* foundIds */
            aload 5 /* t */
            invokevirtual jdk.jfr.EventType.getId:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifne 6
         4: .line 183
            aload 2 /* types */
            aload 5 /* t */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 184
            aload 3 /* foundIds */
            aload 5 /* t */
            invokevirtual jdk.jfr.EventType.getId:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // jdk.jfr.EventType t
         6: .line 181
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 187
            aload 4 /* m */
            areturn
        end local 4 // jdk.jfr.internal.MetadataDescriptor m
        end local 3 // java.util.HashSet foundIds
        end local 2 // java.util.List types
        end local 1 // jdk.jfr.internal.MetadataDescriptor previous
        end local 0 // jdk.jfr.internal.consumer.ChunkHeader ch
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0        ch  Ljdk/jfr/internal/consumer/ChunkHeader;
            0    8     1  previous  Ljdk/jfr/internal/MetadataDescriptor;
            0    8     2     types  Ljava/util/List<Ljdk/jfr/EventType;>;
            0    8     3  foundIds  Ljava/util/HashSet<Ljava/lang/Long;>;
            1    8     4         m  Ljdk/jfr/internal/MetadataDescriptor;
            3    6     5         t  Ljdk/jfr/EventType;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljdk/jfr/internal/consumer/ChunkHeader;Ljdk/jfr/internal/MetadataDescriptor;Ljava/util/List<Ljdk/jfr/EventType;>;Ljava/util/HashSet<Ljava/lang/Long;>;)Ljdk/jfr/internal/MetadataDescriptor;
    MethodParameters:
          Name  Flags
      ch        
      previous  
      types     
      foundIds  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.jfr.consumer.RecordingFile this
         0: .line 197
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.input:Ljdk/jfr/internal/consumer/RecordingInput;
            ifnull 6
         1: .line 198
            aload 0 /* this */
            iconst_1
            putfield jdk.jfr.consumer.RecordingFile.eof:Z
         2: .line 199
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.input:Ljdk/jfr/internal/consumer/RecordingInput;
            invokevirtual jdk.jfr.internal.consumer.RecordingInput.close:()V
         3: .line 200
            aload 0 /* this */
            aconst_null
            putfield jdk.jfr.consumer.RecordingFile.chunkParser:Ljdk/jfr/internal/consumer/ChunkParser;
         4: .line 201
            aload 0 /* this */
            aconst_null
            putfield jdk.jfr.consumer.RecordingFile.input:Ljdk/jfr/internal/consumer/RecordingInput;
         5: .line 202
            aload 0 /* this */
            aconst_null
            putfield jdk.jfr.consumer.RecordingFile.nextEvent:Ljdk/jfr/consumer/RecordedEvent;
         6: .line 204
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.jfr.consumer.RecordingFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljdk/jfr/consumer/RecordingFile;
    Exceptions:
      throws java.io.IOException

  public static java.util.List<jdk.jfr.consumer.RecordedEvent> readAllEvents(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.nio.file.Path path
         0: .line 225
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: new jdk.jfr.consumer.RecordingFile
            dup
            aload 0 /* path */
            invokespecial jdk.jfr.consumer.RecordingFile.<init>:(Ljava/nio/file/Path;)V
            astore 3 /* r */
        start local 3 // jdk.jfr.consumer.RecordingFile r
         2: .line 226
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* list */
        start local 4 // java.util.List list
         3: .line 227
            goto 5
         4: .line 228
      StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable jdk.jfr.consumer.RecordingFile java.util.List
      StackMap stack:
            aload 4 /* list */
            aload 3 /* r */
            invokevirtual jdk.jfr.consumer.RecordingFile.readEvent:()Ljdk/jfr/consumer/RecordedEvent;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 227
      StackMap locals:
      StackMap stack:
            aload 3 /* r */
            invokevirtual jdk.jfr.consumer.RecordingFile.hasMoreEvents:()Z
            ifne 4
         6: .line 230
            aload 4 /* list */
         7: .line 231
            aload 3 /* r */
            ifnull 8
            aload 3 /* r */
            invokevirtual jdk.jfr.consumer.RecordingFile.close:()V
         8: .line 230
      StackMap locals:
      StackMap stack: java.util.List
            areturn
        end local 4 // java.util.List list
      StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable jdk.jfr.consumer.RecordingFile
      StackMap stack: java.lang.Throwable
         9: astore 1
        10: .line 231
            aload 3 /* r */
            ifnull 11
            aload 3 /* r */
            invokevirtual jdk.jfr.consumer.RecordingFile.close:()V
        end local 3 // jdk.jfr.consumer.RecordingFile r
      StackMap locals:
      StackMap stack:
        11: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 2
            aload 1
            ifnonnull 13
            aload 2
            astore 1
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 1
            aload 2
            if_acmpeq 14
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 1
            athrow
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  path  Ljava/nio/file/Path;
            2   11     3     r  Ljdk/jfr/consumer/RecordingFile;
            3    9     4  list  Ljava/util/List<Ljdk/jfr/consumer/RecordedEvent;>;
      Exception table:
        from    to  target  type
           2     7       9  any
           1     8      12  any
           9    12      12  any
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;)Ljava/util/List<Ljdk/jfr/consumer/RecordedEvent;>;
    MethodParameters:
      Name  Flags
      path  

  java.io.File getFile();
    descriptor: ()Ljava/io/File;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.consumer.RecordingFile this
         0: .line 236
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.file:Ljava/io/File;
            areturn
        end local 0 // jdk.jfr.consumer.RecordingFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/consumer/RecordingFile;

  boolean isLastEventInChunk();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.consumer.RecordingFile this
         0: .line 241
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.isLastEventInChunk:Z
            ireturn
        end local 0 // jdk.jfr.consumer.RecordingFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/consumer/RecordingFile;

  private void findNext();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.jfr.consumer.RecordingFile this
         0: .line 247
            goto 13
         1: .line 248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.chunkParser:Ljdk/jfr/internal/consumer/ChunkParser;
            ifnonnull 4
         2: .line 249
            aload 0 /* this */
            new jdk.jfr.internal.consumer.ChunkParser
            dup
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.input:Ljdk/jfr/internal/consumer/RecordingInput;
            invokespecial jdk.jfr.internal.consumer.ChunkParser.<init>:(Ljdk/jfr/internal/consumer/RecordingInput;)V
            putfield jdk.jfr.consumer.RecordingFile.chunkParser:Ljdk/jfr/internal/consumer/ChunkParser;
         3: .line 250
            goto 9
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.chunkParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.isLastChunk:()Z
            ifne 7
         5: .line 251
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.chunkParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.nextChunkParser:()Ljdk/jfr/internal/consumer/ChunkParser;
            putfield jdk.jfr.consumer.RecordingFile.chunkParser:Ljdk/jfr/internal/consumer/ChunkParser;
         6: .line 252
            goto 9
         7: .line 253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield jdk.jfr.consumer.RecordingFile.eof:Z
         8: .line 254
            return
         9: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.chunkParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.readEvent:()Ljdk/jfr/consumer/RecordedEvent;
            putfield jdk.jfr.consumer.RecordingFile.nextEvent:Ljdk/jfr/consumer/RecordedEvent;
        10: .line 257
            goto 12
        11: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.chunkParser:Ljdk/jfr/internal/consumer/ChunkParser;
            invokevirtual jdk.jfr.internal.consumer.ChunkParser.readEvent:()Ljdk/jfr/consumer/RecordedEvent;
            putfield jdk.jfr.consumer.RecordingFile.nextEvent:Ljdk/jfr/consumer/RecordedEvent;
        12: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.nextEvent:Ljdk/jfr/consumer/RecordedEvent;
            getstatic jdk.jfr.internal.consumer.ChunkParser.FLUSH_MARKER:Ljdk/jfr/consumer/RecordedEvent;
            if_acmpeq 11
        13: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.nextEvent:Ljdk/jfr/consumer/RecordedEvent;
            ifnull 1
        14: .line 261
            return
        end local 0 // jdk.jfr.consumer.RecordingFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Ljdk/jfr/consumer/RecordingFile;
    Exceptions:
      throws java.io.IOException

  private void ensureOpen();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.jfr.consumer.RecordingFile this
         0: .line 264
            aload 0 /* this */
            getfield jdk.jfr.consumer.RecordingFile.input:Ljdk/jfr/internal/consumer/RecordingInput;
            ifnonnull 2
         1: .line 265
            new java.io.IOException
            dup
            ldc "Stream Closed"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 267
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.jfr.consumer.RecordingFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/jfr/consumer/RecordingFile;
    Exceptions:
      throws java.io.IOException
}
SourceFile: "RecordingFile.java"