public class java.util.jar.JarInputStream extends java.util.zip.ZipInputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.util.jar.JarInputStream
  super_class: java.util.zip.ZipInputStream
{
  private java.util.jar.Manifest man;
    descriptor: Ljava/util/jar/Manifest;
    flags: (0x0002) ACC_PRIVATE

  private java.util.jar.JarEntry first;
    descriptor: Ljava/util/jar/JarEntry;
    flags: (0x0002) ACC_PRIVATE

  private java.util.jar.JarVerifier jv;
    descriptor: Ljava/util/jar/JarVerifier;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.util.ManifestEntryVerifier mev;
    descriptor: Lsun/security/util/ManifestEntryVerifier;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.util.jar.JarInputStream this
        start local 1 // java.io.InputStream in
         0: .line 60
            aload 0 /* this */
            aload 1 /* in */
            iconst_1
            invokespecial java.util.jar.JarInputStream.<init>:(Ljava/io/InputStream;Z)V
         1: .line 61
            return
        end local 1 // java.io.InputStream in
        end local 0 // java.util.jar.JarInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/util/jar/JarInputStream;
            0    2     1    in  Ljava/io/InputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    

  public void <init>(java.io.InputStream, boolean);
    descriptor: (Ljava/io/InputStream;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.util.jar.JarInputStream this
        start local 1 // java.io.InputStream in
        start local 2 // boolean verify
         0: .line 74
            aload 0 /* this */
            aload 1 /* in */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
         1: .line 75
            aload 0 /* this */
            invokespecial java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            checkcast java.util.jar.JarEntry
            astore 3 /* e */
        start local 3 // java.util.jar.JarEntry e
         2: .line 77
            aload 3 /* e */
            ifnull 4
            aload 3 /* e */
            invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
            ldc "META-INF/"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 78
            aload 0 /* this */
            invokespecial java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            checkcast java.util.jar.JarEntry
            astore 3 /* e */
         4: .line 80
      StackMap locals: java.util.jar.JarInputStream java.io.InputStream int java.util.jar.JarEntry
      StackMap stack:
            aload 3 /* e */
            ifnull 14
            ldc "META-INF/MANIFEST.MF"
            aload 3 /* e */
            invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 14
         5: .line 81
            aload 0 /* this */
            new java.util.jar.Manifest
            dup
            invokespecial java.util.jar.Manifest.<init>:()V
            putfield java.util.jar.JarInputStream.man:Ljava/util/jar/Manifest;
         6: .line 82
            aload 0 /* this */
            new java.io.BufferedInputStream
            dup
            aload 0 /* this */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            invokevirtual java.util.jar.JarInputStream.getBytes:(Ljava/io/InputStream;)[B
            astore 4 /* bytes */
        start local 4 // byte[] bytes
         7: .line 83
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.man:Ljava/util/jar/Manifest;
            new java.io.ByteArrayInputStream
            dup
            aload 4 /* bytes */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokevirtual java.util.jar.Manifest.read:(Ljava/io/InputStream;)V
         8: .line 85
            aload 0 /* this */
            invokevirtual java.util.jar.JarInputStream.closeEntry:()V
         9: .line 86
            iload 2 /* verify */
            ifeq 12
        10: .line 87
            aload 0 /* this */
            new java.util.jar.JarVerifier
            dup
            aload 4 /* bytes */
            invokespecial java.util.jar.JarVerifier.<init>:([B)V
            putfield java.util.jar.JarInputStream.jv:Ljava/util/jar/JarVerifier;
        11: .line 88
            aload 0 /* this */
            new sun.security.util.ManifestEntryVerifier
            dup
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.man:Ljava/util/jar/Manifest;
            invokespecial sun.security.util.ManifestEntryVerifier.<init>:(Ljava/util/jar/Manifest;)V
            putfield java.util.jar.JarInputStream.mev:Lsun/security/util/ManifestEntryVerifier;
        12: .line 90
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.util.jar.JarInputStream.getNextJarEntry:()Ljava/util/jar/JarEntry;
            putfield java.util.jar.JarInputStream.first:Ljava/util/jar/JarEntry;
        end local 4 // byte[] bytes
        13: .line 91
            goto 15
        14: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* e */
            putfield java.util.jar.JarInputStream.first:Ljava/util/jar/JarEntry;
        15: .line 94
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.jar.JarEntry e
        end local 2 // boolean verify
        end local 1 // java.io.InputStream in
        end local 0 // java.util.jar.JarInputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Ljava/util/jar/JarInputStream;
            0   16     1      in  Ljava/io/InputStream;
            0   16     2  verify  Z
            2   16     3       e  Ljava/util/jar/JarEntry;
            7   13     4   bytes  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      in      
      verify  

  private byte[] getBytes(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.util.jar.JarInputStream this
        start local 1 // java.io.InputStream is
         0: .line 99
            sipush 8192
            newarray 8
            astore 2 /* buffer */
        start local 2 // byte[] buffer
         1: .line 100
            new java.io.ByteArrayOutputStream
            dup
            sipush 2048
            invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
            astore 3 /* baos */
        start local 3 // java.io.ByteArrayOutputStream baos
         2: .line 104
            aload 3 /* baos */
            invokevirtual java.io.ByteArrayOutputStream.reset:()V
         3: .line 105
            goto 5
        start local 4 // int n
         4: .line 106
      StackMap locals: byte[] java.io.ByteArrayOutputStream int
      StackMap stack:
            aload 3 /* baos */
            aload 2 /* buffer */
            iconst_0
            iload 4 /* n */
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
        end local 4 // int n
         5: .line 105
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            aload 2 /* buffer */
            iconst_0
            aload 2 /* buffer */
            arraylength
            invokevirtual java.io.InputStream.read:([BII)I
            dup
            istore 4 /* n */
        start local 4 // int n
         6: iconst_m1
            if_icmpne 4
         7: .line 108
            aload 3 /* baos */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            areturn
        end local 4 // int n
        end local 3 // java.io.ByteArrayOutputStream baos
        end local 2 // byte[] buffer
        end local 1 // java.io.InputStream is
        end local 0 // java.util.jar.JarInputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Ljava/util/jar/JarInputStream;
            0    8     1      is  Ljava/io/InputStream;
            1    8     2  buffer  [B
            2    8     3    baos  Ljava/io/ByteArrayOutputStream;
            4    5     4       n  I
            6    8     4       n  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      is    

  public java.util.jar.Manifest getManifest();
    descriptor: ()Ljava/util/jar/Manifest;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.jar.JarInputStream this
         0: .line 119
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.man:Ljava/util/jar/Manifest;
            areturn
        end local 0 // java.util.jar.JarInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/jar/JarInputStream;

  public java.util.zip.ZipEntry getNextEntry();
    descriptor: ()Ljava/util/zip/ZipEntry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.util.jar.JarInputStream this
         0: .line 134
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.first:Ljava/util/jar/JarEntry;
            ifnonnull 3
         1: .line 135
            aload 0 /* this */
            invokespecial java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            checkcast java.util.jar.JarEntry
            astore 1 /* e */
        start local 1 // java.util.jar.JarEntry e
         2: .line 136
            goto 5
        end local 1 // java.util.jar.JarEntry e
         3: .line 137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.first:Ljava/util/jar/JarEntry;
            astore 1 /* e */
        start local 1 // java.util.jar.JarEntry e
         4: .line 138
            aload 0 /* this */
            aconst_null
            putfield java.util.jar.JarInputStream.first:Ljava/util/jar/JarEntry;
         5: .line 140
      StackMap locals: java.util.jar.JarEntry
      StackMap stack:
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.jv:Ljava/util/jar/JarVerifier;
            ifnull 11
            aload 1 /* e */
            ifnull 11
         6: .line 144
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.jv:Ljava/util/jar/JarVerifier;
            invokevirtual java.util.jar.JarVerifier.nothingToVerify:()Z
            ifeq 10
         7: .line 145
            aload 0 /* this */
            aconst_null
            putfield java.util.jar.JarInputStream.jv:Ljava/util/jar/JarVerifier;
         8: .line 146
            aload 0 /* this */
            aconst_null
            putfield java.util.jar.JarInputStream.mev:Lsun/security/util/ManifestEntryVerifier;
         9: .line 147
            goto 11
        10: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.jv:Ljava/util/jar/JarVerifier;
            aload 1 /* e */
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.mev:Lsun/security/util/ManifestEntryVerifier;
            invokevirtual java.util.jar.JarVerifier.beginEntry:(Ljava/util/jar/JarEntry;Lsun/security/util/ManifestEntryVerifier;)V
        11: .line 151
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            areturn
        end local 1 // java.util.jar.JarEntry e
        end local 0 // java.util.jar.JarInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljava/util/jar/JarInputStream;
            2    3     1     e  Ljava/util/jar/JarEntry;
            4   12     1     e  Ljava/util/jar/JarEntry;
    Exceptions:
      throws java.io.IOException

  public java.util.jar.JarEntry getNextJarEntry();
    descriptor: ()Ljava/util/jar/JarEntry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.jar.JarInputStream this
         0: .line 166
            aload 0 /* this */
            invokevirtual java.util.jar.JarInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            checkcast java.util.jar.JarEntry
            areturn
        end local 0 // java.util.jar.JarInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/jar/JarInputStream;
    Exceptions:
      throws java.io.IOException

  public int read(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // java.util.jar.JarInputStream this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 193
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.first:Ljava/util/jar/JarEntry;
            ifnonnull 3
         1: .line 194
            aload 0 /* this */
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokespecial java.util.zip.ZipInputStream.read:([BII)I
            istore 4 /* n */
        start local 4 // int n
         2: .line 195
            goto 4
        end local 4 // int n
         3: .line 196
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 4 /* n */
        start local 4 // int n
         4: .line 198
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.jv:Ljava/util/jar/JarVerifier;
            ifnull 6
         5: .line 199
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.jv:Ljava/util/jar/JarVerifier;
            iload 4 /* n */
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.mev:Lsun/security/util/ManifestEntryVerifier;
            invokevirtual java.util.jar.JarVerifier.update:(I[BIILsun/security/util/ManifestEntryVerifier;)V
         6: .line 201
      StackMap locals:
      StackMap stack:
            iload 4 /* n */
            ireturn
        end local 4 // int n
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // java.util.jar.JarInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/util/jar/JarInputStream;
            0    7     1     b  [B
            0    7     2   off  I
            0    7     3   len  I
            2    3     4     n  I
            4    7     4     n  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  protected java.util.zip.ZipEntry createZipEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/zip/ZipEntry;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.util.jar.JarInputStream this
        start local 1 // java.lang.String name
         0: .line 214
            new java.util.jar.JarEntry
            dup
            aload 1 /* name */
            invokespecial java.util.jar.JarEntry.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        start local 2 // java.util.jar.JarEntry e
         1: .line 215
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.man:Ljava/util/jar/Manifest;
            ifnull 3
         2: .line 216
            aload 2 /* e */
            aload 0 /* this */
            getfield java.util.jar.JarInputStream.man:Ljava/util/jar/Manifest;
            aload 1 /* name */
            invokevirtual java.util.jar.Manifest.getAttributes:(Ljava/lang/String;)Ljava/util/jar/Attributes;
            putfield java.util.jar.JarEntry.attr:Ljava/util/jar/Attributes;
         3: .line 218
      StackMap locals: java.util.jar.JarEntry
      StackMap stack:
            aload 2 /* e */
            areturn
        end local 2 // java.util.jar.JarEntry e
        end local 1 // java.lang.String name
        end local 0 // java.util.jar.JarInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/util/jar/JarInputStream;
            0    4     1  name  Ljava/lang/String;
            1    4     2     e  Ljava/util/jar/JarEntry;
    MethodParameters:
      Name  Flags
      name  
}
SourceFile: "JarInputStream.java"