public final class jdk.management.jfr.RemoteRecordingStream implements jdk.jfr.consumer.EventStream
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.management.jfr.RemoteRecordingStream
  super_class: java.lang.Object
{
  private static final java.lang.String ENABLED;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "enabled"

  private static final javax.management.ObjectName OBJECT_NAME;
    descriptor: Ljavax/management/ObjectName;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  final java.nio.file.Path path;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0010) ACC_FINAL

  final jdk.management.jfr.FlightRecorderMXBean mbean;
    descriptor: Ljdk/management/jfr/FlightRecorderMXBean;
    flags: (0x0010) ACC_FINAL

  final long recordingId;
    descriptor: J
    flags: (0x0010) ACC_FINAL

  final jdk.jfr.consumer.EventStream stream;
    descriptor: Ljdk/jfr/consumer/EventStream;
    flags: (0x0010) ACC_FINAL

  final java.security.AccessControlContext accessControllerContext;
    descriptor: Ljava/security/AccessControlContext;
    flags: (0x0010) ACC_FINAL

  final jdk.management.jfr.DiskRepository repository;
    descriptor: Ljdk/management/jfr/DiskRepository;
    flags: (0x0010) ACC_FINAL

  final java.time.Instant creationTime;
    descriptor: Ljava/time/Instant;
    flags: (0x0010) ACC_FINAL

  volatile java.time.Instant startTime;
    descriptor: Ljava/time/Instant;
    flags: (0x0040) ACC_VOLATILE

  volatile java.time.Instant endTime;
    descriptor: Ljava/time/Instant;
    flags: (0x0040) ACC_VOLATILE

  volatile boolean closed;
    descriptor: Z
    flags: (0x0040) ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 140
            invokestatic jdk.management.jfr.MBeanUtils.createObjectName:()Ljavax/management/ObjectName;
            putstatic jdk.management.jfr.RemoteRecordingStream.OBJECT_NAME:Ljavax/management/ObjectName;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(javax.management.MBeanServerConnection);
    descriptor: (Ljavax/management/MBeanServerConnection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // javax.management.MBeanServerConnection connection
         0: .line 172
            aload 0 /* this */
            aload 1 /* connection */
            invokestatic jdk.management.jfr.RemoteRecordingStream.makeTempDirectory:()Ljava/nio/file/Path;
            iconst_1
            invokespecial jdk.management.jfr.RemoteRecordingStream.<init>:(Ljavax/management/MBeanServerConnection;Ljava/nio/file/Path;Z)V
         1: .line 173
            return
        end local 1 // javax.management.MBeanServerConnection connection
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljdk/management/jfr/RemoteRecordingStream;
            0    2     1  connection  Ljavax/management/MBeanServerConnection;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      connection  

  public void <init>(javax.management.MBeanServerConnection, java.nio.file.Path);
    descriptor: (Ljavax/management/MBeanServerConnection;Ljava/nio/file/Path;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // javax.management.MBeanServerConnection connection
        start local 2 // java.nio.file.Path directory
         0: .line 197
            aload 0 /* this */
            aload 1 /* connection */
            aload 2 /* directory */
            iconst_0
            invokespecial jdk.management.jfr.RemoteRecordingStream.<init>:(Ljavax/management/MBeanServerConnection;Ljava/nio/file/Path;Z)V
         1: .line 198
            return
        end local 2 // java.nio.file.Path directory
        end local 1 // javax.management.MBeanServerConnection connection
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljdk/management/jfr/RemoteRecordingStream;
            0    2     1  connection  Ljavax/management/MBeanServerConnection;
            0    2     2   directory  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      connection  
      directory   

  private void <init>(javax.management.MBeanServerConnection, java.nio.file.Path, boolean);
    descriptor: (Ljavax/management/MBeanServerConnection;Ljava/nio/file/Path;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // javax.management.MBeanServerConnection connection
        start local 2 // java.nio.file.Path dir
        start local 3 // boolean delete
         0: .line 200
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 201
            aload 1 /* connection */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 202
            aload 2 /* dir */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 203
            aload 0 /* this */
            invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
            putfield jdk.management.jfr.RemoteRecordingStream.accessControllerContext:Ljava/security/AccessControlContext;
         4: .line 205
            aload 0 /* this */
            aload 2 /* dir */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            putfield jdk.management.jfr.RemoteRecordingStream.path:Ljava/nio/file/Path;
         5: .line 206
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.path:Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifne 7
         6: .line 207
            new java.io.IOException
            dup
            ldc "Download directory doesn't exist"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 210
      StackMap locals: jdk.management.jfr.RemoteRecordingStream javax.management.MBeanServerConnection java.nio.file.Path int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.path:Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifne 9
         8: .line 211
            new java.io.IOException
            dup
            ldc "Download location must be a directory"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.path:Ljava/nio/file/Path;
            invokestatic jdk.management.jfr.RemoteRecordingStream.checkFileAccess:(Ljava/nio/file/Path;)V
        10: .line 214
            aload 0 /* this */
            invokestatic java.time.Instant.now:()Ljava/time/Instant;
            putfield jdk.management.jfr.RemoteRecordingStream.creationTime:Ljava/time/Instant;
        11: .line 215
            aload 0 /* this */
            aload 1 /* connection */
            invokestatic jdk.management.jfr.RemoteRecordingStream.createProxy:(Ljavax/management/MBeanServerConnection;)Ljdk/management/jfr/FlightRecorderMXBean;
            putfield jdk.management.jfr.RemoteRecordingStream.mbean:Ljdk/management/jfr/FlightRecorderMXBean;
        12: .line 216
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual jdk.management.jfr.RemoteRecordingStream.createRecording:()J
            putfield jdk.management.jfr.RemoteRecordingStream.recordingId:J
        13: .line 217
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.accessControllerContext:Ljava/security/AccessControlContext;
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.path:Ljava/nio/file/Path;
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.mbean:Ljdk/management/jfr/FlightRecorderMXBean;
            invokevirtual jdk.management.jfr.RemoteRecordingStream.configurations:(Ljdk/management/jfr/FlightRecorderMXBean;)Ljava/util/List;
            invokestatic jdk.jfr.internal.management.ManagementSupport.newEventDirectoryStream:(Ljava/security/AccessControlContext;Ljava/nio/file/Path;Ljava/util/List;)Ljdk/jfr/consumer/EventStream;
            putfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
        14: .line 218
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            getstatic java.time.Instant.MIN:Ljava/time/Instant;
            invokeinterface jdk.jfr.consumer.EventStream.setStartTime:(Ljava/time/Instant;)V
        15: .line 219
            aload 0 /* this */
            new jdk.management.jfr.DiskRepository
            dup
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.path:Ljava/nio/file/Path;
            iload 3 /* delete */
            invokespecial jdk.management.jfr.DiskRepository.<init>:(Ljava/nio/file/Path;Z)V
            putfield jdk.management.jfr.RemoteRecordingStream.repository:Ljdk/management/jfr/DiskRepository;
        16: .line 220
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            new jdk.management.jfr.RemoteRecordingStream$ChunkConsumer
            dup
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.repository:Ljdk/management/jfr/DiskRepository;
            invokespecial jdk.management.jfr.RemoteRecordingStream$ChunkConsumer.<init>:(Ljdk/management/jfr/DiskRepository;)V
            invokestatic jdk.jfr.internal.management.ManagementSupport.setOnChunkCompleteHandler:(Ljdk/jfr/consumer/EventStream;Ljava/util/function/Consumer;)V
        17: .line 221
            return
        end local 3 // boolean delete
        end local 2 // java.nio.file.Path dir
        end local 1 // javax.management.MBeanServerConnection connection
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Ljdk/management/jfr/RemoteRecordingStream;
            0   18     1  connection  Ljavax/management/MBeanServerConnection;
            0   18     2         dir  Ljava/nio/file/Path;
            0   18     3      delete  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      connection  
      dir         
      delete      

  private java.util.List<jdk.jfr.Configuration> configurations(jdk.management.jfr.FlightRecorderMXBean);
    descriptor: (Ljdk/management/jfr/FlightRecorderMXBean;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // jdk.management.jfr.FlightRecorderMXBean mbean
         0: .line 224
            aload 1 /* mbean */
            invokeinterface jdk.management.jfr.FlightRecorderMXBean.getConfigurations:()Ljava/util/List;
            astore 2 /* cis */
        start local 2 // java.util.List cis
         1: .line 225
            new java.util.ArrayList
            dup
            aload 2 /* cis */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* confs */
        start local 3 // java.util.List confs
         2: .line 226
            aload 2 /* cis */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: jdk.management.jfr.RemoteRecordingStream jdk.management.jfr.FlightRecorderMXBean java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.management.jfr.ConfigurationInfo
            astore 4 /* ci */
        start local 4 // jdk.management.jfr.ConfigurationInfo ci
         4: .line 227
            aload 3 /* confs */
            aload 4 /* ci */
            invokevirtual jdk.management.jfr.ConfigurationInfo.getName:()Ljava/lang/String;
            aload 4 /* ci */
            invokevirtual jdk.management.jfr.ConfigurationInfo.getLabel:()Ljava/lang/String;
            aload 4 /* ci */
            invokevirtual jdk.management.jfr.ConfigurationInfo.getDescription:()Ljava/lang/String;
         5: .line 228
            aload 4 /* ci */
            invokevirtual jdk.management.jfr.ConfigurationInfo.getProvider:()Ljava/lang/String;
            aload 4 /* ci */
            invokevirtual jdk.management.jfr.ConfigurationInfo.getSettings:()Ljava/util/Map;
            aload 4 /* ci */
            invokevirtual jdk.management.jfr.ConfigurationInfo.getContents:()Ljava/lang/String;
         6: .line 227
            invokestatic jdk.jfr.internal.management.ManagementSupport.newConfiguration:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Ljdk/jfr/Configuration;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // jdk.management.jfr.ConfigurationInfo ci
         7: .line 226
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 230
            aload 3 /* confs */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 3 // java.util.List confs
        end local 2 // java.util.List cis
        end local 1 // jdk.management.jfr.FlightRecorderMXBean mbean
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Ljdk/management/jfr/RemoteRecordingStream;
            0    9     1  mbean  Ljdk/management/jfr/FlightRecorderMXBean;
            1    9     2    cis  Ljava/util/List<Ljdk/management/jfr/ConfigurationInfo;>;
            2    9     3  confs  Ljava/util/List<Ljdk/jfr/Configuration;>;
            4    7     4     ci  Ljdk/management/jfr/ConfigurationInfo;
    Signature: (Ljdk/management/jfr/FlightRecorderMXBean;)Ljava/util/List<Ljdk/jfr/Configuration;>;
    MethodParameters:
       Name  Flags
      mbean  

  public void onMetadata(java.util.function.Consumer<jdk.jfr.consumer.MetadataEvent>);
    descriptor: (Ljava/util/function/Consumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // java.util.function.Consumer action
         0: .line 235
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            aload 1 /* action */
            invokeinterface jdk.jfr.consumer.EventStream.onMetadata:(Ljava/util/function/Consumer;)V
         1: .line 236
            return
        end local 1 // java.util.function.Consumer action
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/management/jfr/RemoteRecordingStream;
            0    2     1  action  Ljava/util/function/Consumer<Ljdk/jfr/consumer/MetadataEvent;>;
    Signature: (Ljava/util/function/Consumer<Ljdk/jfr/consumer/MetadataEvent;>;)V
    MethodParameters:
        Name  Flags
      action  

  private static void checkFileAccess(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.nio.file.Path directory
         0: .line 239
            aconst_null
            astore 1 /* f */
        start local 1 // java.io.RandomAccessFile f
         1: .line 241
            aload 0 /* directory */
            ldc "test-access"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 2 /* testFile */
        start local 2 // java.nio.file.Path testFile
         2: .line 242
            new java.io.RandomAccessFile
            dup
            aload 2 /* testFile */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            ldc "rw"
            invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 1 /* f */
         3: .line 243
            aload 1 /* f */
            iconst_0
            invokevirtual java.io.RandomAccessFile.write:(I)V
         4: .line 244
            aload 1 /* f */
            lconst_0
            invokevirtual java.io.RandomAccessFile.seek:(J)V
         5: .line 245
            aload 1 /* f */
            invokevirtual java.io.RandomAccessFile.read:()I
            pop
         6: .line 246
            aload 1 /* f */
            invokevirtual java.io.RandomAccessFile.close:()V
         7: .line 247
            aload 2 /* testFile */
            invokestatic java.nio.file.Files.delete:(Ljava/nio/file/Path;)V
        end local 2 // java.nio.file.Path testFile
         8: .line 248
            goto 12
      StackMap locals: java.nio.file.Path java.io.RandomAccessFile
      StackMap stack: java.lang.Exception
         9: astore 2 /* e */
        start local 2 // java.lang.Exception e
        10: .line 249
            aload 1 /* f */
            invokestatic jdk.management.jfr.RemoteRecordingStream.closeSilently:(Ljava/io/RandomAccessFile;)V
        11: .line 250
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not read/write/delete in directory"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* directory */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " :"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Exception e
        12: .line 252
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.RandomAccessFile f
        end local 0 // java.nio.file.Path directory
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0  directory  Ljava/nio/file/Path;
            1   13     1          f  Ljava/io/RandomAccessFile;
            2    8     2   testFile  Ljava/nio/file/Path;
           10   12     2          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     8       9  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      directory  

  private static void closeSilently(java.io.RandomAccessFile);
    descriptor: (Ljava/io/RandomAccessFile;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.RandomAccessFile f
         0: .line 255
            aload 0 /* f */
            ifnonnull 2
         1: .line 256
            return
         2: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* f */
            invokevirtual java.io.RandomAccessFile.close:()V
         3: .line 260
            goto 5
      StackMap locals:
      StackMap stack: java.io.IOException
         4: pop
         5: .line 263
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.io.RandomAccessFile f
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     f  Ljava/io/RandomAccessFile;
      Exception table:
        from    to  target  type
           2     3       4  Class java.io.IOException
    MethodParameters:
      Name  Flags
      f     

  private static jdk.management.jfr.FlightRecorderMXBean createProxy(javax.management.MBeanServerConnection);
    descriptor: (Ljavax/management/MBeanServerConnection;)Ljdk/management/jfr/FlightRecorderMXBean;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // javax.management.MBeanServerConnection connection
         0: .line 267
            aload 0 /* connection */
            getstatic jdk.management.jfr.RemoteRecordingStream.OBJECT_NAME:Ljavax/management/ObjectName;
            ldc Ljdk/management/jfr/FlightRecorderMXBean;
            invokestatic javax.management.JMX.newMXBeanProxy:(Ljavax/management/MBeanServerConnection;Ljavax/management/ObjectName;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast jdk.management.jfr.FlightRecorderMXBean
         1: areturn
         2: .line 268
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 269
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not create proxy for FlightRecorderMXBean: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // javax.management.MBeanServerConnection connection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0  connection  Ljavax/management/MBeanServerConnection;
            3    4     1           e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      connection  

  private long createRecording();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
         0: .line 275
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.mbean:Ljdk/management/jfr/FlightRecorderMXBean;
            invokeinterface jdk.management.jfr.FlightRecorderMXBean.newRecording:()J
            lstore 1 /* id */
        start local 1 // long id
         1: .line 276
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* options */
        start local 3 // java.util.Map options
         2: .line 277
            aload 3 /* options */
            ldc "name"
            new java.lang.StringBuilder
            dup
            ldc "Remote Recording Stream: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.creationTime:Ljava/time/Instant;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 278
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.mbean:Ljdk/management/jfr/FlightRecorderMXBean;
            lload 1 /* id */
            aload 3 /* options */
            invokeinterface jdk.management.jfr.FlightRecorderMXBean.setRecordingOptions:(JLjava/util/Map;)V
         4: .line 279
            lload 1 /* id */
         5: lreturn
        end local 3 // java.util.Map options
        end local 1 // long id
         6: .line 280
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         7: .line 281
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not create new recording: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Ljdk/management/jfr/RemoteRecordingStream;
            1    6     1       id  J
            2    6     3  options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            7    8     1        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     5       6  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException

  private java.util.Map<java.lang.String, java.lang.String> getRecordingOptions();
    descriptor: ()Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
         0: .line 287
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.mbean:Ljdk/management/jfr/FlightRecorderMXBean;
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.recordingId:J
            invokeinterface jdk.management.jfr.FlightRecorderMXBean.getRecordingOptions:(J)Ljava/util/Map;
         1: areturn
         2: .line 288
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 289
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not get recording options: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/management/jfr/RemoteRecordingStream;
            3    4     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public void setSettings(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // java.util.Map settings
         0: .line 332
            aload 1 /* settings */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 334
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.mbean:Ljdk/management/jfr/FlightRecorderMXBean;
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.recordingId:J
            aload 1 /* settings */
            invokeinterface jdk.management.jfr.FlightRecorderMXBean.setRecordingSettings:(JLjava/util/Map;)V
         2: .line 335
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Exception
         3: astore 2 /* e */
        start local 2 // java.lang.Exception e
         4: .line 336
            aload 2 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokestatic jdk.jfr.internal.management.ManagementSupport.logDebug:(Ljava/lang/String;)V
         5: .line 337
            aload 0 /* this */
            invokevirtual jdk.management.jfr.RemoteRecordingStream.close:()V
        end local 2 // java.lang.Exception e
         6: .line 339
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Map settings
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Ljdk/management/jfr/RemoteRecordingStream;
            0    7     1  settings  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            4    6     2         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Exception
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      settings  

  public jdk.jfr.EventSettings disable(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljdk/jfr/EventSettings;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // java.lang.String name
         0: .line 353
            aload 1 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 354
            new jdk.management.jfr.RemoteRecordingStream$RemoteSettings
            dup
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.mbean:Ljdk/management/jfr/FlightRecorderMXBean;
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.recordingId:J
            invokespecial jdk.management.jfr.RemoteRecordingStream$RemoteSettings.<init>:(Ljdk/management/jfr/FlightRecorderMXBean;J)V
            invokestatic jdk.jfr.internal.management.ManagementSupport.newEventSettings:(Ljdk/jfr/internal/management/EventSettingsModifier;)Ljdk/jfr/EventSettings;
            astore 2 /* s */
        start local 2 // jdk.jfr.EventSettings s
         2: .line 356
            aload 2 /* s */
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "#"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "enabled"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc "false"
            invokevirtual jdk.jfr.EventSettings.with:(Ljava/lang/String;Ljava/lang/String;)Ljdk/jfr/EventSettings;
         3: areturn
         4: .line 357
      StackMap locals: jdk.management.jfr.RemoteRecordingStream java.lang.String jdk.jfr.EventSettings
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
         5: .line 358
            aload 3 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokestatic jdk.jfr.internal.management.ManagementSupport.logDebug:(Ljava/lang/String;)V
         6: .line 359
            aload 0 /* this */
            invokevirtual jdk.management.jfr.RemoteRecordingStream.close:()V
         7: .line 360
            aload 2 /* s */
            areturn
        end local 3 // java.lang.Exception e
        end local 2 // jdk.jfr.EventSettings s
        end local 1 // java.lang.String name
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljdk/management/jfr/RemoteRecordingStream;
            0    8     1  name  Ljava/lang/String;
            2    8     2     s  Ljdk/jfr/EventSettings;
            5    8     3     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      name  

  public jdk.jfr.EventSettings enable(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljdk/jfr/EventSettings;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // java.lang.String name
         0: .line 377
            aload 1 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 378
            new jdk.management.jfr.RemoteRecordingStream$RemoteSettings
            dup
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.mbean:Ljdk/management/jfr/FlightRecorderMXBean;
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.recordingId:J
            invokespecial jdk.management.jfr.RemoteRecordingStream$RemoteSettings.<init>:(Ljdk/management/jfr/FlightRecorderMXBean;J)V
            invokestatic jdk.jfr.internal.management.ManagementSupport.newEventSettings:(Ljdk/jfr/internal/management/EventSettingsModifier;)Ljdk/jfr/EventSettings;
            astore 2 /* s */
        start local 2 // jdk.jfr.EventSettings s
         2: .line 380
            aload 2 /* s */
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "#"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "enabled"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc "true"
            invokevirtual jdk.jfr.EventSettings.with:(Ljava/lang/String;Ljava/lang/String;)Ljdk/jfr/EventSettings;
         3: areturn
         4: .line 381
      StackMap locals: jdk.management.jfr.RemoteRecordingStream java.lang.String jdk.jfr.EventSettings
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
         5: .line 382
            aload 3 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokestatic jdk.jfr.internal.management.ManagementSupport.logDebug:(Ljava/lang/String;)V
         6: .line 383
            aload 0 /* this */
            invokevirtual jdk.management.jfr.RemoteRecordingStream.close:()V
         7: .line 384
            aload 2 /* s */
            areturn
        end local 3 // java.lang.Exception e
        end local 2 // jdk.jfr.EventSettings s
        end local 1 // java.lang.String name
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljdk/management/jfr/RemoteRecordingStream;
            0    8     1  name  Ljava/lang/String;
            2    8     2     s  Ljdk/jfr/EventSettings;
            5    8     3     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      name  

  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.management.jfr.RemoteRecordingStream this
        start local 1 // java.time.Duration maxAge
         0: .line 408
            aload 1 /* maxAge */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 409
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.repository:Ljdk/management/jfr/DiskRepository;
            aload 1 /* maxAge */
            invokevirtual jdk.management.jfr.DiskRepository.setMaxAge:(Ljava/time/Duration;)V
         2: .line 410
            return
        end local 1 // java.time.Duration maxAge
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljdk/management/jfr/RemoteRecordingStream;
            0    3     1  maxAge  Ljava/time/Duration;
    MethodParameters:
        Name  Flags
      maxAge  

  public void setMaxSize(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // long maxSize
         0: .line 432
            lload 1 /* maxSize */
            lconst_0
            lcmp
            ifge 2
         1: .line 433
            new java.lang.IllegalArgumentException
            dup
            ldc "Max size of recording can't be negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 435
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.repository:Ljdk/management/jfr/DiskRepository;
            lload 1 /* maxSize */
            invokevirtual jdk.management.jfr.DiskRepository.setMaxSize:(J)V
         3: .line 436
            return
        end local 1 // long maxSize
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Ljdk/management/jfr/RemoteRecordingStream;
            0    4     1  maxSize  J
    MethodParameters:
         Name  Flags
      maxSize  

  public void onEvent(java.util.function.Consumer<jdk.jfr.consumer.RecordedEvent>);
    descriptor: (Ljava/util/function/Consumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // java.util.function.Consumer action
         0: .line 440
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            aload 1 /* action */
            invokeinterface jdk.jfr.consumer.EventStream.onEvent:(Ljava/util/function/Consumer;)V
         1: .line 441
            return
        end local 1 // java.util.function.Consumer action
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/management/jfr/RemoteRecordingStream;
            0    2     1  action  Ljava/util/function/Consumer<Ljdk/jfr/consumer/RecordedEvent;>;
    Signature: (Ljava/util/function/Consumer<Ljdk/jfr/consumer/RecordedEvent;>;)V
    MethodParameters:
        Name  Flags
      action  

  public void onEvent(java.lang.String, java.util.function.Consumer<jdk.jfr.consumer.RecordedEvent>);
    descriptor: (Ljava/lang/String;Ljava/util/function/Consumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // java.lang.String eventName
        start local 2 // java.util.function.Consumer action
         0: .line 445
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            aload 1 /* eventName */
            aload 2 /* action */
            invokeinterface jdk.jfr.consumer.EventStream.onEvent:(Ljava/lang/String;Ljava/util/function/Consumer;)V
         1: .line 446
            return
        end local 2 // java.util.function.Consumer action
        end local 1 // java.lang.String eventName
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Ljdk/management/jfr/RemoteRecordingStream;
            0    2     1  eventName  Ljava/lang/String;
            0    2     2     action  Ljava/util/function/Consumer<Ljdk/jfr/consumer/RecordedEvent;>;
    Signature: (Ljava/lang/String;Ljava/util/function/Consumer<Ljdk/jfr/consumer/RecordedEvent;>;)V
    MethodParameters:
           Name  Flags
      eventName  
      action     

  public void onFlush(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // java.lang.Runnable action
         0: .line 450
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            aload 1 /* action */
            invokeinterface jdk.jfr.consumer.EventStream.onFlush:(Ljava/lang/Runnable;)V
         1: .line 451
            return
        end local 1 // java.lang.Runnable action
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/management/jfr/RemoteRecordingStream;
            0    2     1  action  Ljava/lang/Runnable;
    MethodParameters:
        Name  Flags
      action  

  public void onError(java.util.function.Consumer<java.lang.Throwable>);
    descriptor: (Ljava/util/function/Consumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // java.util.function.Consumer action
         0: .line 455
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            aload 1 /* action */
            invokeinterface jdk.jfr.consumer.EventStream.onError:(Ljava/util/function/Consumer;)V
         1: .line 456
            return
        end local 1 // java.util.function.Consumer action
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/management/jfr/RemoteRecordingStream;
            0    2     1  action  Ljava/util/function/Consumer<Ljava/lang/Throwable;>;
    Signature: (Ljava/util/function/Consumer<Ljava/lang/Throwable;>;)V
    MethodParameters:
        Name  Flags
      action  

  public void onClose(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // java.lang.Runnable action
         0: .line 460
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            aload 1 /* action */
            invokeinterface jdk.jfr.consumer.EventStream.onClose:(Ljava/lang/Runnable;)V
         1: .line 461
            return
        end local 1 // java.lang.Runnable action
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/management/jfr/RemoteRecordingStream;
            0    2     1  action  Ljava/lang/Runnable;
    MethodParameters:
        Name  Flags
      action  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
         0: .line 465
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.closed:Z
            ifeq 2
         1: .line 466
            return
         2: .line 468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield jdk.management.jfr.RemoteRecordingStream.closed:Z
         3: .line 469
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            aconst_null
            invokestatic jdk.jfr.internal.management.ManagementSupport.setOnChunkCompleteHandler:(Ljdk/jfr/consumer/EventStream;Ljava/util/function/Consumer;)V
         4: .line 470
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            invokeinterface jdk.jfr.consumer.EventStream.close:()V
         5: .line 472
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.mbean:Ljdk/management/jfr/FlightRecorderMXBean;
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.recordingId:J
            invokeinterface jdk.management.jfr.FlightRecorderMXBean.closeRecording:(J)V
         6: .line 473
            goto 9
      StackMap locals:
      StackMap stack: java.io.IOException
         7: astore 1 /* e */
        start local 1 // java.io.IOException e
         8: .line 474
            aload 1 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokestatic jdk.jfr.internal.management.ManagementSupport.logDebug:(Ljava/lang/String;)V
        end local 1 // java.io.IOException e
         9: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.repository:Ljdk/management/jfr/DiskRepository;
            invokevirtual jdk.management.jfr.DiskRepository.close:()V
        10: .line 478
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
        11: astore 1 /* e */
        start local 1 // java.io.IOException e
        12: .line 479
            aload 1 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokestatic jdk.jfr.internal.management.ManagementSupport.logDebug:(Ljava/lang/String;)V
        end local 1 // java.io.IOException e
        13: .line 481
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Ljdk/management/jfr/RemoteRecordingStream;
            8    9     1     e  Ljava/io/IOException;
           12   13     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           5     6       7  Class java.io.IOException
           9    10      11  Class java.io.IOException

  public boolean remove(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // java.lang.Object action
         0: .line 485
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            aload 1 /* action */
            invokeinterface jdk.jfr.consumer.EventStream.remove:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object action
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/management/jfr/RemoteRecordingStream;
            0    1     1  action  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      action  

  public void setReuse(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // boolean reuse
         0: .line 490
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            iload 1 /* reuse */
            invokeinterface jdk.jfr.consumer.EventStream.setReuse:(Z)V
         1: .line 491
            return
        end local 1 // boolean reuse
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljdk/management/jfr/RemoteRecordingStream;
            0    2     1  reuse  Z
    MethodParameters:
       Name  Flags
      reuse  

  public void setOrdered(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // boolean ordered
         0: .line 495
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            iload 1 /* ordered */
            invokeinterface jdk.jfr.consumer.EventStream.setOrdered:(Z)V
         1: .line 496
            return
        end local 1 // boolean ordered
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljdk/management/jfr/RemoteRecordingStream;
            0    2     1  ordered  Z
    MethodParameters:
         Name  Flags
      ordered  

  public void setStartTime(java.time.Instant);
    descriptor: (Ljava/time/Instant;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // java.time.Instant startTime
         0: .line 500
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            aload 1 /* startTime */
            invokeinterface jdk.jfr.consumer.EventStream.setStartTime:(Ljava/time/Instant;)V
         1: .line 501
            aload 0 /* this */
            aload 1 /* startTime */
            putfield jdk.management.jfr.RemoteRecordingStream.startTime:Ljava/time/Instant;
         2: .line 502
            return
        end local 1 // java.time.Instant startTime
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Ljdk/management/jfr/RemoteRecordingStream;
            0    3     1  startTime  Ljava/time/Instant;
    MethodParameters:
           Name  Flags
      startTime  

  public void setEndTime(java.time.Instant);
    descriptor: (Ljava/time/Instant;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // java.time.Instant endTime
         0: .line 506
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            aload 1 /* endTime */
            invokeinterface jdk.jfr.consumer.EventStream.setEndTime:(Ljava/time/Instant;)V
         1: .line 507
            aload 0 /* this */
            aload 1 /* endTime */
            putfield jdk.management.jfr.RemoteRecordingStream.endTime:Ljava/time/Instant;
         2: .line 508
            return
        end local 1 // java.time.Instant endTime
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Ljdk/management/jfr/RemoteRecordingStream;
            0    3     1  endTime  Ljava/time/Instant;
    MethodParameters:
         Name  Flags
      endTime  

  public void start();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
         0: .line 514
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.mbean:Ljdk/management/jfr/FlightRecorderMXBean;
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.recordingId:J
            invokeinterface jdk.management.jfr.FlightRecorderMXBean.startRecording:(J)V
         1: .line 515
            goto 4
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
         2: astore 1 /* ise */
        start local 1 // java.lang.IllegalStateException ise
         3: .line 516
            aload 1 /* ise */
            athrow
        end local 1 // java.lang.IllegalStateException ise
         4: .line 518
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.management.jfr.RemoteRecordingStream.startDownload:()V
         5: .line 519
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Exception
         6: astore 1 /* e */
        start local 1 // java.lang.Exception e
         7: .line 520
            aload 1 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokestatic jdk.jfr.internal.management.ManagementSupport.logDebug:(Ljava/lang/String;)V
         8: .line 521
            aload 0 /* this */
            invokevirtual jdk.management.jfr.RemoteRecordingStream.close:()V
         9: .line 522
            return
        end local 1 // java.lang.Exception e
        10: .line 524
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            invokeinterface jdk.jfr.consumer.EventStream.start:()V
        11: .line 525
            return
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljdk/management/jfr/RemoteRecordingStream;
            3    4     1   ise  Ljava/lang/IllegalStateException;
            7   10     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalStateException
           0     5       6  Class java.lang.Exception

  public void startAsync();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
         0: .line 529
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            invokeinterface jdk.jfr.consumer.EventStream.startAsync:()V
         1: .line 531
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.mbean:Ljdk/management/jfr/FlightRecorderMXBean;
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.recordingId:J
            invokeinterface jdk.management.jfr.FlightRecorderMXBean.startRecording:(J)V
         2: .line 532
            aload 0 /* this */
            invokevirtual jdk.management.jfr.RemoteRecordingStream.startDownload:()V
         3: .line 533
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Exception
         4: astore 1 /* e */
        start local 1 // java.lang.Exception e
         5: .line 534
            aload 1 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokestatic jdk.jfr.internal.management.ManagementSupport.logDebug:(Ljava/lang/String;)V
         6: .line 535
            aload 0 /* this */
            invokevirtual jdk.management.jfr.RemoteRecordingStream.close:()V
        end local 1 // java.lang.Exception e
         7: .line 537
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljdk/management/jfr/RemoteRecordingStream;
            5    7     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.Exception

  public void awaitTermination(java.time.Duration);
    descriptor: (Ljava/time/Duration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
        start local 1 // java.time.Duration timeout
         0: .line 541
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            aload 1 /* timeout */
            invokeinterface jdk.jfr.consumer.EventStream.awaitTermination:(Ljava/time/Duration;)V
         1: .line 542
            return
        end local 1 // java.time.Duration timeout
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljdk/management/jfr/RemoteRecordingStream;
            0    2     1  timeout  Ljava/time/Duration;
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
         Name  Flags
      timeout  

  public void awaitTermination();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
         0: .line 546
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.stream:Ljdk/jfr/consumer/EventStream;
            invokeinterface jdk.jfr.consumer.EventStream.awaitTermination:()V
         1: .line 547
            return
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/management/jfr/RemoteRecordingStream;
    Exceptions:
      throws java.lang.InterruptedException

  private static java.nio.file.Path makeTempDirectory();
    descriptor: ()Ljava/nio/file/Path;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 550
            ldc "jfr-streaming"
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createTempDirectory:(Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException

  private void startDownload();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
         0: .line 554
            new java.lang.StringBuilder
            dup
            ldc "JFR: Download Thread "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.creationTime:Ljava/time/Instant;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         1: .line 555
            new jdk.management.jfr.DownLoadThread
            dup
            aload 0 /* this */
            aload 1 /* name */
            invokespecial jdk.management.jfr.DownLoadThread.<init>:(Ljdk/management/jfr/RemoteRecordingStream;Ljava/lang/String;)V
            astore 2 /* downLoadThread */
        start local 2 // java.lang.Thread downLoadThread
         2: .line 556
            aload 2 /* downLoadThread */
            invokevirtual java.lang.Thread.start:()V
         3: .line 557
            return
        end local 2 // java.lang.Thread downLoadThread
        end local 1 // java.lang.String name
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Ljdk/management/jfr/RemoteRecordingStream;
            1    4     1            name  Ljava/lang/String;
            2    4     2  downLoadThread  Ljava/lang/Thread;

  boolean isClosed();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.management.jfr.RemoteRecordingStream this
         0: .line 560
            aload 0 /* this */
            getfield jdk.management.jfr.RemoteRecordingStream.closed:Z
            ireturn
        end local 0 // jdk.management.jfr.RemoteRecordingStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/management/jfr/RemoteRecordingStream;
}
SourceFile: "RemoteRecordingStream.java"
NestMembers:
  jdk.management.jfr.RemoteRecordingStream$ChunkConsumer  jdk.management.jfr.RemoteRecordingStream$RemoteSettings
InnerClasses:
  final ChunkConsumer = jdk.management.jfr.RemoteRecordingStream$ChunkConsumer of jdk.management.jfr.RemoteRecordingStream
  final RemoteSettings = jdk.management.jfr.RemoteRecordingStream$RemoteSettings of jdk.management.jfr.RemoteRecordingStream