public final class jdk.jfr.internal.management.StreamManager
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.jfr.internal.management.StreamManager
  super_class: java.lang.Object
{
  public static final long TIME_OUT;
    descriptor: J
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int DEFAULT_BLOCK_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 50000

  private final java.util.Map<java.lang.Long, jdk.jfr.internal.management.EventByteStream> streams;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Long;Ljdk/jfr/internal/management/EventByteStream;>;

  private java.util.Timer timer;
    descriptor: Ljava/util/Timer;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 44
            getstatic java.util.concurrent.TimeUnit.MINUTES:Ljava/util/concurrent/TimeUnit;
            ldc 200
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            putstatic jdk.jfr.internal.management.StreamManager.TIME_OUT:J
         1: .line 45
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.management.StreamManager this
         0: .line 42
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 47
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield jdk.jfr.internal.management.StreamManager.streams:Ljava/util/Map;
         2: .line 42
            return
        end local 0 // jdk.jfr.internal.management.StreamManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/jfr/internal/management/StreamManager;

  public synchronized jdk.jfr.internal.management.EventByteStream getStream(long);
    descriptor: (J)Ljdk/jfr/internal/management/EventByteStream;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // jdk.jfr.internal.management.StreamManager this
        start local 1 // long streamIdentifer
         0: .line 51
            aload 0 /* this */
            getfield jdk.jfr.internal.management.StreamManager.streams:Ljava/util/Map;
            lload 1 /* streamIdentifer */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.jfr.internal.management.EventByteStream
            astore 3 /* stream */
        start local 3 // jdk.jfr.internal.management.EventByteStream stream
         1: .line 52
            aload 3 /* stream */
            ifnonnull 3
         2: .line 53
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown stream identifier "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* streamIdentifer */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 55
      StackMap locals: jdk.jfr.internal.management.EventByteStream
      StackMap stack:
            aload 3 /* stream */
            areturn
        end local 3 // jdk.jfr.internal.management.EventByteStream stream
        end local 1 // long streamIdentifer
        end local 0 // jdk.jfr.internal.management.StreamManager this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Ljdk/jfr/internal/management/StreamManager;
            0    4     1  streamIdentifer  J
            1    4     3           stream  Ljdk/jfr/internal/management/EventByteStream;
    MethodParameters:
                 Name  Flags
      streamIdentifer  

  public synchronized jdk.jfr.internal.management.EventByteStream createOngoing(jdk.jfr.Recording, int, java.time.Instant, java.time.Instant);
    descriptor: (Ljdk/jfr/Recording;ILjava/time/Instant;Ljava/time/Instant;)Ljdk/jfr/internal/management/EventByteStream;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=10, args_size=5
        start local 0 // jdk.jfr.internal.management.StreamManager this
        start local 1 // jdk.jfr.Recording recording
        start local 2 // int blockSize
        start local 3 // java.time.Instant startTime
        start local 4 // java.time.Instant endTime
         0: .line 59
            lconst_0
            lstore 5 /* startTimeNanos */
        start local 5 // long startTimeNanos
         1: .line 60
            ldc 9223372036854775807
            lstore 7 /* endTimeNanos */
        start local 7 // long endTimeNanos
         2: .line 61
            aload 3 /* startTime */
            getstatic java.time.Instant.MIN:Ljava/time/Instant;
            invokevirtual java.time.Instant.equals:(Ljava/lang/Object;)Z
            ifne 5
         3: .line 62
            aload 3 /* startTime */
            invokevirtual java.time.Instant.getEpochSecond:()J
            ldc 1000000000
            lmul
            lstore 5 /* startTimeNanos */
         4: .line 63
            lload 5 /* startTimeNanos */
            aload 3 /* startTime */
            invokevirtual java.time.Instant.getNano:()I
            i2l
            ladd
            lstore 5 /* startTimeNanos */
         5: .line 65
      StackMap locals: long long
      StackMap stack:
            aload 4 /* endTime */
            getstatic java.time.Instant.MAX:Ljava/time/Instant;
            invokevirtual java.time.Instant.equals:(Ljava/lang/Object;)Z
            ifne 8
         6: .line 66
            aload 4 /* endTime */
            invokevirtual java.time.Instant.getEpochSecond:()J
            ldc 1000000000
            lmul
            lstore 7 /* endTimeNanos */
         7: .line 67
            lload 7 /* endTimeNanos */
            aload 4 /* endTime */
            invokevirtual java.time.Instant.getNano:()I
            i2l
            ladd
            lstore 7 /* endTimeNanos */
         8: .line 69
      StackMap locals:
      StackMap stack:
            aload 1 /* recording */
            iload 2 /* blockSize */
            lload 5 /* startTimeNanos */
            lload 7 /* endTimeNanos */
            invokestatic jdk.jfr.internal.management.EventByteStream.newOngoingStream:(Ljdk/jfr/Recording;IJJ)Ljdk/jfr/internal/management/EventByteStream;
            astore 9 /* stream */
        start local 9 // jdk.jfr.internal.management.EventByteStream stream
         9: .line 70
            aload 0 /* this */
            getfield jdk.jfr.internal.management.StreamManager.streams:Ljava/util/Map;
            aload 9 /* stream */
            invokevirtual jdk.jfr.internal.management.EventByteStream.getId:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 9 /* stream */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 71
            aload 0 /* this */
            aload 9 /* stream */
            invokestatic java.lang.System.currentTimeMillis:()J
            getstatic jdk.jfr.internal.management.StreamManager.TIME_OUT:J
            ladd
            invokevirtual jdk.jfr.internal.management.StreamManager.scheduleAbort:(Ljdk/jfr/internal/management/EventByteStream;J)V
        11: .line 72
            aload 9 /* stream */
            areturn
        end local 9 // jdk.jfr.internal.management.EventByteStream stream
        end local 7 // long endTimeNanos
        end local 5 // long startTimeNanos
        end local 4 // java.time.Instant endTime
        end local 3 // java.time.Instant startTime
        end local 2 // int blockSize
        end local 1 // jdk.jfr.Recording recording
        end local 0 // jdk.jfr.internal.management.StreamManager this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Ljdk/jfr/internal/management/StreamManager;
            0   12     1       recording  Ljdk/jfr/Recording;
            0   12     2       blockSize  I
            0   12     3       startTime  Ljava/time/Instant;
            0   12     4         endTime  Ljava/time/Instant;
            1   12     5  startTimeNanos  J
            2   12     7    endTimeNanos  J
            9   12     9          stream  Ljdk/jfr/internal/management/EventByteStream;
    MethodParameters:
           Name  Flags
      recording  
      blockSize  
      startTime  
      endTime    

  public synchronized jdk.jfr.internal.management.EventByteStream create(java.io.InputStream, int);
    descriptor: (Ljava/io/InputStream;I)Ljdk/jfr/internal/management/EventByteStream;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // jdk.jfr.internal.management.StreamManager this
        start local 1 // java.io.InputStream is
        start local 2 // int blockSize
         0: .line 76
            aload 1 /* is */
            iload 2 /* blockSize */
            invokestatic jdk.jfr.internal.management.EventByteStream.newFinishedStream:(Ljava/io/InputStream;I)Ljdk/jfr/internal/management/EventByteStream;
            astore 3 /* stream */
        start local 3 // jdk.jfr.internal.management.EventByteStream stream
         1: .line 77
            aload 0 /* this */
            getfield jdk.jfr.internal.management.StreamManager.streams:Ljava/util/Map;
            aload 3 /* stream */
            invokevirtual jdk.jfr.internal.management.EventByteStream.getId:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 3 /* stream */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 79
            aload 0 /* this */
            aload 3 /* stream */
            invokestatic java.lang.System.currentTimeMillis:()J
            getstatic jdk.jfr.internal.management.StreamManager.TIME_OUT:J
            ladd
            invokevirtual jdk.jfr.internal.management.StreamManager.scheduleAbort:(Ljdk/jfr/internal/management/EventByteStream;J)V
         3: .line 80
            aload 3 /* stream */
            areturn
        end local 3 // jdk.jfr.internal.management.EventByteStream stream
        end local 2 // int blockSize
        end local 1 // java.io.InputStream is
        end local 0 // jdk.jfr.internal.management.StreamManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Ljdk/jfr/internal/management/StreamManager;
            0    4     1         is  Ljava/io/InputStream;
            0    4     2  blockSize  I
            1    4     3     stream  Ljdk/jfr/internal/management/EventByteStream;
    MethodParameters:
           Name  Flags
      is         
      blockSize  

  public synchronized void destroy(jdk.jfr.internal.management.EventByteStream);
    descriptor: (Ljdk/jfr/internal/management/EventByteStream;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.jfr.internal.management.StreamManager this
        start local 1 // jdk.jfr.internal.management.EventByteStream stream
         0: .line 85
            aload 1 /* stream */
            invokevirtual jdk.jfr.internal.management.EventByteStream.close:()V
         1: .line 86
            goto 3
      StackMap locals:
      StackMap stack: java.io.IOException
         2: pop
         3: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.management.StreamManager.streams:Ljava/util/Map;
            aload 1 /* stream */
            invokevirtual jdk.jfr.internal.management.EventByteStream.getId:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 90
            aload 0 /* this */
            getfield jdk.jfr.internal.management.StreamManager.streams:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 7
         5: .line 91
            aload 0 /* this */
            getfield jdk.jfr.internal.management.StreamManager.timer:Ljava/util/Timer;
            invokevirtual java.util.Timer.cancel:()V
         6: .line 92
            aload 0 /* this */
            aconst_null
            putfield jdk.jfr.internal.management.StreamManager.timer:Ljava/util/Timer;
         7: .line 94
      StackMap locals:
      StackMap stack:
            return
        end local 1 // jdk.jfr.internal.management.EventByteStream stream
        end local 0 // jdk.jfr.internal.management.StreamManager this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Ljdk/jfr/internal/management/StreamManager;
            0    8     1  stream  Ljdk/jfr/internal/management/EventByteStream;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  public synchronized void scheduleAbort(jdk.jfr.internal.management.EventByteStream, long);
    descriptor: (Ljdk/jfr/internal/management/EventByteStream;J)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // jdk.jfr.internal.management.StreamManager this
        start local 1 // jdk.jfr.internal.management.EventByteStream s
        start local 2 // long when
         0: .line 97
            aload 0 /* this */
            getfield jdk.jfr.internal.management.StreamManager.timer:Ljava/util/Timer;
            ifnonnull 2
         1: .line 98
            aload 0 /* this */
            new java.util.Timer
            dup
            iconst_1
            invokespecial java.util.Timer.<init>:(Z)V
            putfield jdk.jfr.internal.management.StreamManager.timer:Ljava/util/Timer;
         2: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.management.StreamManager.timer:Ljava/util/Timer;
            new jdk.jfr.internal.management.StreamCleanupTask
            dup
            aload 0 /* this */
            aload 1 /* s */
            invokespecial jdk.jfr.internal.management.StreamCleanupTask.<init>:(Ljdk/jfr/internal/management/StreamManager;Ljdk/jfr/internal/management/EventByteStream;)V
            new java.util.Date
            dup
            lload 2 /* when */
            getstatic jdk.jfr.internal.management.StreamManager.TIME_OUT:J
            ladd
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual java.util.Timer.schedule:(Ljava/util/TimerTask;Ljava/util/Date;)V
         3: .line 101
            return
        end local 2 // long when
        end local 1 // jdk.jfr.internal.management.EventByteStream s
        end local 0 // jdk.jfr.internal.management.StreamManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/jfr/internal/management/StreamManager;
            0    4     1     s  Ljdk/jfr/internal/management/EventByteStream;
            0    4     2  when  J
    MethodParameters:
      Name  Flags
      s     
      when  
}
SourceFile: "StreamManager.java"