public abstract class org.eclipse.jgit.lib.ObjectLoader
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.eclipse.jgit.lib.ObjectLoader
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.lib.ObjectLoader this
         0: .line 29
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.eclipse.jgit.lib.ObjectLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/lib/ObjectLoader;

  public abstract int getType();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract long getSize();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public boolean isLarge();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.lib.ObjectLoader this
         0: .line 54
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.lib.ObjectLoader.getCachedBytes:()[B
            pop
         1: .line 55
            iconst_0
            ireturn
         2: .line 56
      StackMap locals:
      StackMap stack: org.eclipse.jgit.errors.LargeObjectException
            pop
         3: .line 57
            iconst_1
            ireturn
        end local 0 // org.eclipse.jgit.lib.ObjectLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/eclipse/jgit/lib/ObjectLoader;
      Exception table:
        from    to  target  type
           0     1       2  Class org.eclipse.jgit.errors.LargeObjectException

  public final byte[] getBytes();
    descriptor: ()[B
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.lib.ObjectLoader this
         0: .line 74
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.lib.ObjectLoader.getCachedBytes:()[B
            invokestatic org.eclipse.jgit.lib.ObjectLoader.cloneArray:([B)[B
            areturn
        end local 0 // org.eclipse.jgit.lib.ObjectLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/lib/ObjectLoader;
    Exceptions:
      throws org.eclipse.jgit.errors.LargeObjectException

  public final byte[] getBytes(int);
    descriptor: (I)[B
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.eclipse.jgit.lib.ObjectLoader this
        start local 1 // int sizeLimit
         0: .line 106
            aload 0 /* this */
            iload 1 /* sizeLimit */
            invokevirtual org.eclipse.jgit.lib.ObjectLoader.getCachedBytes:(I)[B
            astore 2 /* cached */
        start local 2 // byte[] cached
         1: .line 108
            aload 2 /* cached */
            invokestatic org.eclipse.jgit.lib.ObjectLoader.cloneArray:([B)[B
         2: areturn
         3: .line 109
      StackMap locals: org.eclipse.jgit.lib.ObjectLoader int byte[]
      StackMap stack: java.lang.OutOfMemoryError
            astore 3 /* tooBig */
        start local 3 // java.lang.OutOfMemoryError tooBig
         4: .line 110
            new org.eclipse.jgit.errors.LargeObjectException$OutOfMemory
            dup
            aload 3 /* tooBig */
            invokespecial org.eclipse.jgit.errors.LargeObjectException$OutOfMemory.<init>:(Ljava/lang/OutOfMemoryError;)V
            athrow
        end local 3 // java.lang.OutOfMemoryError tooBig
        end local 2 // byte[] cached
        end local 1 // int sizeLimit
        end local 0 // org.eclipse.jgit.lib.ObjectLoader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/eclipse/jgit/lib/ObjectLoader;
            0    5     1  sizeLimit  I
            1    5     2     cached  [B
            4    5     3     tooBig  Ljava/lang/OutOfMemoryError;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.OutOfMemoryError
    Exceptions:
      throws org.eclipse.jgit.errors.LargeObjectException, org.eclipse.jgit.errors.MissingObjectException, java.io.IOException
    MethodParameters:
           Name  Flags
      sizeLimit  

  public abstract byte[] getCachedBytes();
    descriptor: ()[B
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws org.eclipse.jgit.errors.LargeObjectException

  public byte[] getCachedBytes(int);
    descriptor: (I)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.eclipse.jgit.lib.ObjectLoader this
        start local 1 // int sizeLimit
         0: .line 161
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.lib.ObjectLoader.isLarge:()Z
            ifne 2
         1: .line 162
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.lib.ObjectLoader.getCachedBytes:()[B
            areturn
         2: .line 164
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2
            aconst_null
            astore 3
         3: aload 0 /* this */
            invokevirtual org.eclipse.jgit.lib.ObjectLoader.openStream:()Lorg/eclipse/jgit/lib/ObjectStream;
            astore 4 /* in */
        start local 4 // org.eclipse.jgit.lib.ObjectStream in
         4: .line 165
            aload 4 /* in */
            invokevirtual org.eclipse.jgit.lib.ObjectStream.getSize:()J
            lstore 5 /* sz */
        start local 5 // long sz
         5: .line 166
            iload 1 /* sizeLimit */
            i2l
            lload 5 /* sz */
            lcmp
            ifge 7
         6: .line 167
            new org.eclipse.jgit.errors.LargeObjectException$ExceedsLimit
            dup
            iload 1 /* sizeLimit */
            i2l
            lload 5 /* sz */
            invokespecial org.eclipse.jgit.errors.LargeObjectException$ExceedsLimit.<init>:(JJ)V
            athrow
         7: .line 169
      StackMap locals: org.eclipse.jgit.lib.ObjectLoader int java.lang.Throwable java.lang.Throwable org.eclipse.jgit.lib.ObjectStream long
      StackMap stack:
            ldc 2147483647
            lload 5 /* sz */
            lcmp
            ifge 9
         8: .line 170
            new org.eclipse.jgit.errors.LargeObjectException$ExceedsByteArrayLimit
            dup
            invokespecial org.eclipse.jgit.errors.LargeObjectException$ExceedsByteArrayLimit.<init>:()V
            athrow
         9: .line 174
      StackMap locals:
      StackMap stack:
            lload 5 /* sz */
            l2i
            newarray 8
            astore 7 /* buf */
        start local 7 // byte[] buf
        10: .line 175
            goto 13
        end local 7 // byte[] buf
      StackMap locals:
      StackMap stack: java.lang.OutOfMemoryError
        11: astore 8 /* notEnoughHeap */
        start local 8 // java.lang.OutOfMemoryError notEnoughHeap
        12: .line 176
            new org.eclipse.jgit.errors.LargeObjectException$OutOfMemory
            dup
            aload 8 /* notEnoughHeap */
            invokespecial org.eclipse.jgit.errors.LargeObjectException$OutOfMemory.<init>:(Ljava/lang/OutOfMemoryError;)V
            athrow
        end local 8 // java.lang.OutOfMemoryError notEnoughHeap
        start local 7 // byte[] buf
        13: .line 179
      StackMap locals: byte[]
      StackMap stack:
            aload 4 /* in */
            aload 7 /* buf */
            iconst_0
            aload 7 /* buf */
            arraylength
            invokestatic org.eclipse.jgit.util.IO.readFully:(Ljava/io/InputStream;[BII)V
        14: .line 180
            aload 7 /* buf */
        15: .line 181
            aload 4 /* in */
            ifnull 16
            aload 4 /* in */
            invokevirtual org.eclipse.jgit.lib.ObjectStream.close:()V
        16: .line 180
      StackMap locals:
      StackMap stack: byte[]
            areturn
        end local 7 // byte[] buf
        end local 5 // long sz
      StackMap locals: org.eclipse.jgit.lib.ObjectLoader int java.lang.Throwable java.lang.Throwable org.eclipse.jgit.lib.ObjectStream
      StackMap stack: java.lang.Throwable
        17: astore 2
        18: .line 181
            aload 4 /* in */
            ifnull 19
            aload 4 /* in */
            invokevirtual org.eclipse.jgit.lib.ObjectStream.close:()V
        end local 4 // org.eclipse.jgit.lib.ObjectStream in
      StackMap locals:
      StackMap stack:
        19: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 3
            aload 2
            ifnonnull 21
            aload 3
            astore 2
            goto 22
      StackMap locals:
      StackMap stack:
        21: aload 2
            aload 3
            if_acmpeq 22
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        22: aload 2
            athrow
        end local 1 // int sizeLimit
        end local 0 // org.eclipse.jgit.lib.ObjectLoader this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Lorg/eclipse/jgit/lib/ObjectLoader;
            0   23     1      sizeLimit  I
            4   19     4             in  Lorg/eclipse/jgit/lib/ObjectStream;
            5   17     5             sz  J
           10   11     7            buf  [B
           13   17     7            buf  [B
           12   13     8  notEnoughHeap  Ljava/lang/OutOfMemoryError;
      Exception table:
        from    to  target  type
           9    10      11  Class java.lang.OutOfMemoryError
           4    15      17  any
           3    16      20  any
          17    20      20  any
    Exceptions:
      throws org.eclipse.jgit.errors.LargeObjectException, org.eclipse.jgit.errors.MissingObjectException, java.io.IOException
    MethodParameters:
           Name  Flags
      sizeLimit  

  public abstract org.eclipse.jgit.lib.ObjectStream openStream();
    descriptor: ()Lorg/eclipse/jgit/lib/ObjectStream;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws org.eclipse.jgit.errors.MissingObjectException, java.io.IOException

  public void copyTo(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // org.eclipse.jgit.lib.ObjectLoader this
        start local 1 // java.io.OutputStream out
         0: .line 221
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.lib.ObjectLoader.isLarge:()Z
            ifeq 21
         1: .line 222
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: aload 0 /* this */
            invokevirtual org.eclipse.jgit.lib.ObjectLoader.openStream:()Lorg/eclipse/jgit/lib/ObjectStream;
            astore 4 /* in */
        start local 4 // org.eclipse.jgit.lib.ObjectStream in
         3: .line 223
            aload 4 /* in */
            invokevirtual org.eclipse.jgit.lib.ObjectStream.getSize:()J
            lstore 5 /* sz */
        start local 5 // long sz
         4: .line 224
            sipush 8192
            newarray 8
            astore 7 /* tmp */
        start local 7 // byte[] tmp
         5: .line 225
            lconst_0
            lstore 8 /* copied */
        start local 8 // long copied
         6: .line 226
            goto 12
         7: .line 227
      StackMap locals: org.eclipse.jgit.lib.ObjectLoader java.io.OutputStream java.lang.Throwable java.lang.Throwable org.eclipse.jgit.lib.ObjectStream long byte[] long
      StackMap stack:
            aload 4 /* in */
            aload 7 /* tmp */
            invokevirtual org.eclipse.jgit.lib.ObjectStream.read:([B)I
            istore 10 /* n */
        start local 10 // int n
         8: .line 228
            iload 10 /* n */
            ifge 10
         9: .line 229
            new java.io.EOFException
            dup
            invokespecial java.io.EOFException.<init>:()V
            athrow
        10: .line 230
      StackMap locals: int
      StackMap stack:
            aload 1 /* out */
            aload 7 /* tmp */
            iconst_0
            iload 10 /* n */
            invokevirtual java.io.OutputStream.write:([BII)V
        11: .line 231
            lload 8 /* copied */
            iload 10 /* n */
            i2l
            ladd
            lstore 8 /* copied */
        end local 10 // int n
        12: .line 226
      StackMap locals:
      StackMap stack:
            lload 8 /* copied */
            lload 5 /* sz */
            lcmp
            iflt 7
        13: .line 233
            aload 4 /* in */
            invokevirtual org.eclipse.jgit.lib.ObjectStream.read:()I
            iflt 15
        14: .line 234
            new java.io.EOFException
            dup
            invokespecial java.io.EOFException.<init>:()V
            athrow
        end local 8 // long copied
        end local 7 // byte[] tmp
        end local 5 // long sz
        15: .line 235
      StackMap locals:
      StackMap stack:
            aload 4 /* in */
            ifnull 22
            aload 4 /* in */
            invokevirtual org.eclipse.jgit.lib.ObjectStream.close:()V
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 2
            aload 4 /* in */
            ifnull 17
            aload 4 /* in */
            invokevirtual org.eclipse.jgit.lib.ObjectStream.close:()V
        end local 4 // org.eclipse.jgit.lib.ObjectStream in
      StackMap locals:
      StackMap stack:
        17: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 3
            aload 2
            ifnonnull 19
            aload 3
            astore 2
            goto 20
      StackMap locals:
      StackMap stack:
        19: aload 2
            aload 3
            if_acmpeq 20
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        20: aload 2
            athrow
        21: .line 237
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.lib.ObjectLoader.getCachedBytes:()[B
            invokevirtual java.io.OutputStream.write:([B)V
        22: .line 239
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.OutputStream out
        end local 0 // org.eclipse.jgit.lib.ObjectLoader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0    this  Lorg/eclipse/jgit/lib/ObjectLoader;
            0   23     1     out  Ljava/io/OutputStream;
            3   17     4      in  Lorg/eclipse/jgit/lib/ObjectStream;
            4   15     5      sz  J
            5   15     7     tmp  [B
            6   15     8  copied  J
            8   12    10       n  I
      Exception table:
        from    to  target  type
           3    15      16  any
           2    18      18  any
    Exceptions:
      throws org.eclipse.jgit.errors.MissingObjectException, java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  private static byte[] cloneArray(byte[]);
    descriptor: ([B)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // byte[] data
         0: .line 242
            aload 0 /* data */
            arraylength
            newarray 8
            astore 1 /* copy */
        start local 1 // byte[] copy
         1: .line 243
            aload 0 /* data */
            iconst_0
            aload 1 /* copy */
            iconst_0
            aload 0 /* data */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 244
            aload 1 /* copy */
            areturn
        end local 1 // byte[] copy
        end local 0 // byte[] data
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  data  [B
            1    3     1  copy  [B
    MethodParameters:
      Name  Flags
      data  
}
SourceFile: "ObjectLoader.java"
NestMembers:
  org.eclipse.jgit.lib.ObjectLoader$Filter  org.eclipse.jgit.lib.ObjectLoader$SmallObject
InnerClasses:
  public ExceedsByteArrayLimit = org.eclipse.jgit.errors.LargeObjectException$ExceedsByteArrayLimit of org.eclipse.jgit.errors.LargeObjectException
  public ExceedsLimit = org.eclipse.jgit.errors.LargeObjectException$ExceedsLimit of org.eclipse.jgit.errors.LargeObjectException
  public OutOfMemory = org.eclipse.jgit.errors.LargeObjectException$OutOfMemory of org.eclipse.jgit.errors.LargeObjectException
  public abstract Filter = org.eclipse.jgit.lib.ObjectLoader$Filter of org.eclipse.jgit.lib.ObjectLoader
  public SmallObject = org.eclipse.jgit.lib.ObjectLoader$SmallObject of org.eclipse.jgit.lib.ObjectLoader