public final class org.hibernate.internal.util.io.StreamCopier
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.hibernate.internal.util.io.StreamCopier
  super_class: java.lang.Object
{
  public static final int BUFFER_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4096

  public static final byte[] BUFFER;
    descriptor: [B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 25
            sipush 4096
            newarray 8
            putstatic org.hibernate.internal.util.io.StreamCopier.BUFFER:[B
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.util.io.StreamCopier this
         0: .line 21
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 22
            return
        end local 0 // org.hibernate.internal.util.io.StreamCopier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/util/io/StreamCopier;

  public static long copy(java.io.InputStream, java.io.OutputStream);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.io.InputStream from
        start local 1 // java.io.OutputStream into
         0: .line 29
            lconst_0
            lstore 2 /* totalRead */
        start local 2 // long totalRead
         1: .line 31
      StackMap locals: long
      StackMap stack:
            getstatic org.hibernate.internal.util.io.StreamCopier.BUFFER:[B
            dup
            astore 4
            monitorenter
         2: .line 32
            aload 0 /* from */
            getstatic org.hibernate.internal.util.io.StreamCopier.BUFFER:[B
            invokevirtual java.io.InputStream.read:([B)I
            istore 5 /* amountRead */
        start local 5 // int amountRead
         3: .line 33
            iload 5 /* amountRead */
            iconst_m1
            if_icmpne 6
         4: .line 34
            aload 4
            monitorexit
         5: goto 15
         6: .line 36
      StackMap locals: byte[] int
      StackMap stack:
            aload 1 /* into */
            getstatic org.hibernate.internal.util.io.StreamCopier.BUFFER:[B
            iconst_0
            iload 5 /* amountRead */
            invokevirtual java.io.OutputStream.write:([BII)V
         7: .line 37
            lload 2 /* totalRead */
            iload 5 /* amountRead */
            i2l
            ladd
            lstore 2 /* totalRead */
         8: .line 38
            iload 5 /* amountRead */
            sipush 4096
            if_icmpge 11
         9: .line 40
            aload 4
            monitorexit
        10: goto 15
        end local 5 // int amountRead
        11: .line 31
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        12: goto 1
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 4
            monitorexit
        14: athrow
        15: .line 44
      StackMap locals:
      StackMap stack:
            lload 2 /* totalRead */
        16: lreturn
        end local 2 // long totalRead
        17: .line 46
      StackMap locals: java.io.InputStream java.io.OutputStream
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
        18: .line 47
            new org.hibernate.HibernateException
            dup
            ldc "Unable to copy stream content"
            aload 2 /* e */
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
        end local 1 // java.io.OutputStream into
        end local 0 // java.io.InputStream from
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        from  Ljava/io/InputStream;
            0   19     1        into  Ljava/io/OutputStream;
            1   17     2   totalRead  J
            3   11     5  amountRead  I
           18   19     2           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     5      13  any
           6    10      13  any
          11    12      13  any
          13    14      13  any
           0    16      17  Class java.io.IOException
    MethodParameters:
      Name  Flags
      from  
      into  
}
SourceFile: "StreamCopier.java"