public class sun.security.krb5.internal.ccache.FileCredentialsCache extends sun.security.krb5.internal.ccache.CredentialsCache implements sun.security.krb5.internal.ccache.FileCCacheConstants
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.krb5.internal.ccache.FileCredentialsCache
  super_class: sun.security.krb5.internal.ccache.CredentialsCache
{
  public int version;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public sun.security.krb5.internal.ccache.Tag tag;
    descriptor: Lsun/security/krb5/internal/ccache/Tag;
    flags: (0x0001) ACC_PUBLIC

  public sun.security.krb5.PrincipalName primaryPrincipal;
    descriptor: Lsun/security/krb5/PrincipalName;
    flags: (0x0001) ACC_PUBLIC

  private java.util.Vector<sun.security.krb5.internal.ccache.Credentials> credentialsList;
    descriptor: Ljava/util/Vector;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Vector<Lsun/security/krb5/internal/ccache/Credentials;>;

  private static java.lang.String dir;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean DEBUG;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private java.util.List<sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry> configEntries;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lsun/security/krb5/internal/ccache/CredentialsCache$ConfigEntry;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 72
            getstatic sun.security.krb5.internal.Krb5.DEBUG:Z
            putstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static synchronized sun.security.krb5.internal.ccache.FileCredentialsCache acquireInstance(sun.security.krb5.PrincipalName, java.lang.String);
    descriptor: (Lsun/security/krb5/PrincipalName;Ljava/lang/String;)Lsun/security/krb5/internal/ccache/FileCredentialsCache;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.krb5.PrincipalName principal
        start local 1 // java.lang.String cache
         0: .line 77
            new sun.security.krb5.internal.ccache.FileCredentialsCache
            dup
            invokespecial sun.security.krb5.internal.ccache.FileCredentialsCache.<init>:()V
            astore 2 /* fcc */
        start local 2 // sun.security.krb5.internal.ccache.FileCredentialsCache fcc
         1: .line 78
            aload 1 /* cache */
            ifnonnull 4
         2: .line 79
            invokestatic sun.security.krb5.internal.ccache.FileCredentialsCache.getDefaultCacheName:()Ljava/lang/String;
            putstatic sun.security.krb5.internal.ccache.FileCredentialsCache.cacheName:Ljava/lang/String;
         3: .line 80
            goto 5
         4: .line 81
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache
      StackMap stack:
            aload 1 /* cache */
            invokestatic sun.security.krb5.internal.ccache.FileCredentialsCache.checkValidation:(Ljava/lang/String;)Ljava/lang/String;
            putstatic sun.security.krb5.internal.ccache.FileCredentialsCache.cacheName:Ljava/lang/String;
         5: .line 83
      StackMap locals:
      StackMap stack:
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.cacheName:Ljava/lang/String;
            ifnull 6
            new java.io.File
            dup
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.cacheName:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.exists:()Z
            ifne 7
         6: .line 85
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         7: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* principal */
            ifnull 9
         8: .line 88
            aload 2 /* fcc */
            aload 0 /* principal */
            putfield sun.security.krb5.internal.ccache.FileCredentialsCache.primaryPrincipal:Lsun/security/krb5/PrincipalName;
         9: .line 90
      StackMap locals:
      StackMap stack:
            aload 2 /* fcc */
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.cacheName:Ljava/lang/String;
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.load:(Ljava/lang/String;)V
        10: .line 91
            aload 2 /* fcc */
        11: areturn
        end local 2 // sun.security.krb5.internal.ccache.FileCredentialsCache fcc
        12: .line 92
      StackMap locals: sun.security.krb5.PrincipalName java.lang.String
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
        13: .line 94
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 19
        14: .line 95
            aload 2 /* e */
            invokevirtual java.io.IOException.printStackTrace:()V
        end local 2 // java.io.IOException e
        15: goto 19
        16: .line 97
      StackMap locals:
      StackMap stack: sun.security.krb5.KrbException
            astore 2 /* e */
        start local 2 // sun.security.krb5.KrbException e
        17: .line 99
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 19
        18: .line 100
            aload 2 /* e */
            invokevirtual sun.security.krb5.KrbException.printStackTrace:()V
        end local 2 // sun.security.krb5.KrbException e
        19: .line 103
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String cache
        end local 0 // sun.security.krb5.PrincipalName principal
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0  principal  Lsun/security/krb5/PrincipalName;
            0   20     1      cache  Ljava/lang/String;
            1   12     2        fcc  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
           13   15     2          e  Ljava/io/IOException;
           17   19     2          e  Lsun/security/krb5/KrbException;
      Exception table:
        from    to  target  type
           0     6      12  Class java.io.IOException
           7    11      12  Class java.io.IOException
           0     6      16  Class sun.security.krb5.KrbException
           7    11      16  Class sun.security.krb5.KrbException
    MethodParameters:
           Name  Flags
      principal  
      cache      

  public static sun.security.krb5.internal.ccache.FileCredentialsCache acquireInstance();
    descriptor: ()Lsun/security/krb5/internal/ccache/FileCredentialsCache;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 107
            aconst_null
            aconst_null
            invokestatic sun.security.krb5.internal.ccache.FileCredentialsCache.acquireInstance:(Lsun/security/krb5/PrincipalName;Ljava/lang/String;)Lsun/security/krb5/internal/ccache/FileCredentialsCache;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static synchronized sun.security.krb5.internal.ccache.FileCredentialsCache New(sun.security.krb5.PrincipalName, java.lang.String);
    descriptor: (Lsun/security/krb5/PrincipalName;Ljava/lang/String;)Lsun/security/krb5/internal/ccache/FileCredentialsCache;
    flags: (0x0028) ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.krb5.PrincipalName principal
        start local 1 // java.lang.String name
         0: .line 113
            new sun.security.krb5.internal.ccache.FileCredentialsCache
            dup
            invokespecial sun.security.krb5.internal.ccache.FileCredentialsCache.<init>:()V
            astore 2 /* fcc */
        start local 2 // sun.security.krb5.internal.ccache.FileCredentialsCache fcc
         1: .line 114
            aload 1 /* name */
            invokestatic sun.security.krb5.internal.ccache.FileCredentialsCache.checkValidation:(Ljava/lang/String;)Ljava/lang/String;
            putstatic sun.security.krb5.internal.ccache.FileCredentialsCache.cacheName:Ljava/lang/String;
         2: .line 115
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.cacheName:Ljava/lang/String;
            ifnonnull 4
         3: .line 117
            aconst_null
            areturn
         4: .line 119
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache
      StackMap stack:
            aload 2 /* fcc */
            aload 0 /* principal */
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.cacheName:Ljava/lang/String;
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.init:(Lsun/security/krb5/PrincipalName;Ljava/lang/String;)V
         5: .line 120
            aload 2 /* fcc */
         6: areturn
        end local 2 // sun.security.krb5.internal.ccache.FileCredentialsCache fcc
         7: .line 122
      StackMap locals: sun.security.krb5.PrincipalName java.lang.String
      StackMap stack: java.io.IOException
            pop
            goto 9
         8: .line 124
      StackMap locals:
      StackMap stack: sun.security.krb5.KrbException
            pop
         9: .line 126
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String name
        end local 0 // sun.security.krb5.PrincipalName principal
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0  principal  Lsun/security/krb5/PrincipalName;
            0   10     1       name  Ljava/lang/String;
            1    7     2        fcc  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
      Exception table:
        from    to  target  type
           0     3       7  Class java.io.IOException
           4     6       7  Class java.io.IOException
           0     3       8  Class sun.security.krb5.KrbException
           4     6       8  Class sun.security.krb5.KrbException
    MethodParameters:
           Name  Flags
      principal  
      name       

  static synchronized sun.security.krb5.internal.ccache.FileCredentialsCache New(sun.security.krb5.PrincipalName);
    descriptor: (Lsun/security/krb5/PrincipalName;)Lsun/security/krb5/internal/ccache/FileCredentialsCache;
    flags: (0x0028) ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.security.krb5.PrincipalName principal
         0: .line 131
            new sun.security.krb5.internal.ccache.FileCredentialsCache
            dup
            invokespecial sun.security.krb5.internal.ccache.FileCredentialsCache.<init>:()V
            astore 1 /* fcc */
        start local 1 // sun.security.krb5.internal.ccache.FileCredentialsCache fcc
         1: .line 132
            invokestatic sun.security.krb5.internal.ccache.FileCredentialsCache.getDefaultCacheName:()Ljava/lang/String;
            putstatic sun.security.krb5.internal.ccache.FileCredentialsCache.cacheName:Ljava/lang/String;
         2: .line 133
            aload 1 /* fcc */
            aload 0 /* principal */
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.cacheName:Ljava/lang/String;
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.init:(Lsun/security/krb5/PrincipalName;Ljava/lang/String;)V
         3: .line 134
            aload 1 /* fcc */
         4: areturn
        end local 1 // sun.security.krb5.internal.ccache.FileCredentialsCache fcc
         5: .line 136
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         6: .line 137
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 12
         7: .line 138
            aload 1 /* e */
            invokevirtual java.io.IOException.printStackTrace:()V
        end local 1 // java.io.IOException e
         8: goto 12
         9: .line 140
      StackMap locals:
      StackMap stack: sun.security.krb5.KrbException
            astore 1 /* e */
        start local 1 // sun.security.krb5.KrbException e
        10: .line 141
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 12
        11: .line 142
            aload 1 /* e */
            invokevirtual sun.security.krb5.KrbException.printStackTrace:()V
        end local 1 // sun.security.krb5.KrbException e
        12: .line 146
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // sun.security.krb5.PrincipalName principal
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0  principal  Lsun/security/krb5/PrincipalName;
            1    5     1        fcc  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
            6    8     1          e  Ljava/io/IOException;
           10   12     1          e  Lsun/security/krb5/KrbException;
      Exception table:
        from    to  target  type
           0     4       5  Class java.io.IOException
           0     4       9  Class sun.security.krb5.KrbException
    MethodParameters:
           Name  Flags
      principal  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
         0: .line 149
            aload 0 /* this */
            invokespecial sun.security.krb5.internal.ccache.CredentialsCache.<init>:()V
         1: .line 325
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.security.krb5.internal.ccache.FileCredentialsCache.configEntries:Ljava/util/List;
         2: .line 150
            return
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;

  boolean exists(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
        start local 1 // java.lang.String cache
         0: .line 153
            new java.io.File
            dup
            aload 1 /* cache */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 2 /* file */
        start local 2 // java.io.File file
         1: .line 154
            aload 2 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 3
         2: .line 155
            iconst_1
            ireturn
         3: .line 156
      StackMap locals: java.io.File
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.io.File file
        end local 1 // java.lang.String cache
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
            0    4     1  cache  Ljava/lang/String;
            1    4     2   file  Ljava/io/File;
    MethodParameters:
       Name  Flags
      cache  

  synchronized void init(sun.security.krb5.PrincipalName, java.lang.String);
    descriptor: (Lsun/security/krb5/PrincipalName;Ljava/lang/String;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
        start local 1 // sun.security.krb5.PrincipalName principal
        start local 2 // java.lang.String name
         0: .line 161
            aload 0 /* this */
            aload 1 /* principal */
            putfield sun.security.krb5.internal.ccache.FileCredentialsCache.primaryPrincipal:Lsun/security/krb5/PrincipalName;
         1: .line 162
            aconst_null
            astore 3
            aconst_null
            astore 4
         2: new java.io.FileOutputStream
            dup
            aload 2 /* name */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
            astore 5 /* fos */
        start local 5 // java.io.FileOutputStream fos
         3: .line 163
            new sun.security.krb5.internal.ccache.CCacheOutputStream
            dup
            aload 5 /* fos */
            invokespecial sun.security.krb5.internal.ccache.CCacheOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 6 /* cos */
        start local 6 // sun.security.krb5.internal.ccache.CCacheOutputStream cos
         4: .line 164
            aload 0 /* this */
            sipush 1283
            putfield sun.security.krb5.internal.ccache.FileCredentialsCache.version:I
         5: .line 165
            aload 6 /* cos */
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.primaryPrincipal:Lsun/security/krb5/PrincipalName;
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.version:I
            invokevirtual sun.security.krb5.internal.ccache.CCacheOutputStream.writeHeader:(Lsun/security/krb5/PrincipalName;I)V
         6: .line 166
            aload 6 /* cos */
            ifnull 9
            aload 6 /* cos */
            invokevirtual sun.security.krb5.internal.ccache.CCacheOutputStream.close:()V
            goto 9
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache sun.security.krb5.PrincipalName java.lang.String java.lang.Throwable java.lang.Throwable java.io.FileOutputStream sun.security.krb5.internal.ccache.CCacheOutputStream
      StackMap stack: java.lang.Throwable
         7: astore 3
            aload 6 /* cos */
            ifnull 8
            aload 6 /* cos */
            invokevirtual sun.security.krb5.internal.ccache.CCacheOutputStream.close:()V
        end local 6 // sun.security.krb5.internal.ccache.CCacheOutputStream cos
      StackMap locals:
      StackMap stack:
         8: aload 3
            athrow
      StackMap locals:
      StackMap stack:
         9: aload 5 /* fos */
            ifnull 17
            aload 5 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 4
            aload 3
            ifnonnull 11
            aload 4
            astore 3
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 3
            aload 4
            if_acmpeq 12
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        12: aload 5 /* fos */
            ifnull 13
            aload 5 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
        end local 5 // java.io.FileOutputStream fos
      StackMap locals:
      StackMap stack:
        13: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 4
            aload 3
            ifnonnull 15
            aload 4
            astore 3
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 3
            aload 4
            if_acmpeq 16
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 3
            athrow
        17: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* name */
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.load:(Ljava/lang/String;)V
        18: .line 168
            return
        end local 2 // java.lang.String name
        end local 1 // sun.security.krb5.PrincipalName principal
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0       this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
            0   19     1  principal  Lsun/security/krb5/PrincipalName;
            0   19     2       name  Ljava/lang/String;
            3   13     5        fos  Ljava/io/FileOutputStream;
            4    8     6        cos  Lsun/security/krb5/internal/ccache/CCacheOutputStream;
      Exception table:
        from    to  target  type
           4     6       7  any
           3     9      10  any
           2    14      14  any
    Exceptions:
      throws java.io.IOException, sun.security.krb5.KrbException
    MethodParameters:
           Name  Flags
      principal  
      name       

  synchronized void load(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
        start local 1 // java.lang.String name
         0: .line 172
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: new java.io.FileInputStream
            dup
            aload 1 /* name */
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 5 /* fis */
        start local 5 // java.io.FileInputStream fis
         2: .line 173
            new sun.security.krb5.internal.ccache.CCacheInputStream
            dup
            aload 5 /* fis */
            invokespecial sun.security.krb5.internal.ccache.CCacheInputStream.<init>:(Ljava/io/InputStream;)V
            astore 6 /* cis */
        start local 6 // sun.security.krb5.internal.ccache.CCacheInputStream cis
         3: .line 174
            aload 0 /* this */
            aload 6 /* cis */
            invokevirtual sun.security.krb5.internal.ccache.CCacheInputStream.readVersion:()I
            putfield sun.security.krb5.internal.ccache.FileCredentialsCache.version:I
         4: .line 175
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.version:I
            sipush 1284
            if_icmpne 7
         5: .line 176
            aload 0 /* this */
            aload 6 /* cis */
            invokevirtual sun.security.krb5.internal.ccache.CCacheInputStream.readTag:()Lsun/security/krb5/internal/ccache/Tag;
            putfield sun.security.krb5.internal.ccache.FileCredentialsCache.tag:Lsun/security/krb5/internal/ccache/Tag;
         6: .line 177
            goto 10
         7: .line 178
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache java.lang.String top java.lang.Throwable java.lang.Throwable java.io.FileInputStream sun.security.krb5.internal.ccache.CCacheInputStream
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.krb5.internal.ccache.FileCredentialsCache.tag:Lsun/security/krb5/internal/ccache/Tag;
         8: .line 179
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.version:I
            sipush 1281
            if_icmpeq 9
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.version:I
            sipush 1282
            if_icmpne 10
         9: .line 180
      StackMap locals:
      StackMap stack:
            aload 6 /* cis */
            invokevirtual sun.security.krb5.internal.ccache.CCacheInputStream.setNativeByteOrder:()V
        10: .line 183
      StackMap locals:
      StackMap stack:
            aload 6 /* cis */
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.version:I
            invokevirtual sun.security.krb5.internal.ccache.CCacheInputStream.readPrincipal:(I)Lsun/security/krb5/PrincipalName;
            astore 2 /* p */
        start local 2 // sun.security.krb5.PrincipalName p
        11: .line 185
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.primaryPrincipal:Lsun/security/krb5/PrincipalName;
            ifnull 14
        12: .line 186
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.primaryPrincipal:Lsun/security/krb5/PrincipalName;
            aload 2 /* p */
            invokevirtual sun.security.krb5.PrincipalName.match:(Lsun/security/krb5/PrincipalName;)Z
            ifne 15
        13: .line 187
            new java.io.IOException
            dup
            ldc "Primary principals don't match."
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 190
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache java.lang.String sun.security.krb5.PrincipalName java.lang.Throwable java.lang.Throwable java.io.FileInputStream sun.security.krb5.internal.ccache.CCacheInputStream
      StackMap stack:
            aload 0 /* this */
            aload 2 /* p */
            putfield sun.security.krb5.internal.ccache.FileCredentialsCache.primaryPrincipal:Lsun/security/krb5/PrincipalName;
        15: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
        16: .line 192
            goto 23
        17: .line 193
      StackMap locals:
      StackMap stack:
            aload 6 /* cis */
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.version:I
            invokevirtual sun.security.krb5.internal.ccache.CCacheInputStream.readCred:(I)Ljava/lang/Object;
            astore 7 /* cred */
        start local 7 // java.lang.Object cred
        18: .line 194
            aload 7 /* cred */
            ifnull 23
        19: .line 195
            aload 7 /* cred */
            instanceof sun.security.krb5.internal.ccache.Credentials
            ifeq 22
        20: .line 196
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
            aload 7 /* cred */
            checkcast sun.security.krb5.internal.ccache.Credentials
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        21: .line 197
            goto 23
        22: .line 198
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 7 /* cred */
            checkcast sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.addConfigEntry:(Lsun/security/krb5/internal/ccache/CredentialsCache$ConfigEntry;)V
        end local 7 // java.lang.Object cred
        23: .line 192
      StackMap locals:
      StackMap stack:
            aload 6 /* cis */
            invokevirtual sun.security.krb5.internal.ccache.CCacheInputStream.available:()I
            ifgt 17
        24: .line 202
            aload 6 /* cis */
            ifnull 27
            aload 6 /* cis */
            invokevirtual sun.security.krb5.internal.ccache.CCacheInputStream.close:()V
            goto 27
        end local 2 // sun.security.krb5.PrincipalName p
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache java.lang.String top java.lang.Throwable java.lang.Throwable java.io.FileInputStream sun.security.krb5.internal.ccache.CCacheInputStream
      StackMap stack: java.lang.Throwable
        25: astore 3
            aload 6 /* cis */
            ifnull 26
            aload 6 /* cis */
            invokevirtual sun.security.krb5.internal.ccache.CCacheInputStream.close:()V
        end local 6 // sun.security.krb5.internal.ccache.CCacheInputStream cis
      StackMap locals:
      StackMap stack:
        26: aload 3
            athrow
        start local 2 // sun.security.krb5.PrincipalName p
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache java.lang.String sun.security.krb5.PrincipalName java.lang.Throwable java.lang.Throwable java.io.FileInputStream
      StackMap stack:
        27: aload 5 /* fis */
            ifnull 35
            aload 5 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
            goto 35
        end local 2 // sun.security.krb5.PrincipalName p
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache java.lang.String top java.lang.Throwable java.lang.Throwable java.io.FileInputStream
      StackMap stack: java.lang.Throwable
        28: astore 4
            aload 3
            ifnonnull 29
            aload 4
            astore 3
            goto 30
      StackMap locals:
      StackMap stack:
        29: aload 3
            aload 4
            if_acmpeq 30
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        30: aload 5 /* fis */
            ifnull 31
            aload 5 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        end local 5 // java.io.FileInputStream fis
      StackMap locals:
      StackMap stack:
        31: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 4
            aload 3
            ifnonnull 33
            aload 4
            astore 3
            goto 34
      StackMap locals:
      StackMap stack:
        33: aload 3
            aload 4
            if_acmpeq 34
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        34: aload 3
            athrow
        start local 2 // sun.security.krb5.PrincipalName p
        35: .line 203
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache java.lang.String sun.security.krb5.PrincipalName
      StackMap stack:
            return
        end local 2 // sun.security.krb5.PrincipalName p
        end local 1 // java.lang.String name
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   36     0  this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
            0   36     1  name  Ljava/lang/String;
           11   25     2     p  Lsun/security/krb5/PrincipalName;
           27   28     2     p  Lsun/security/krb5/PrincipalName;
           35   36     2     p  Lsun/security/krb5/PrincipalName;
            2   31     5   fis  Ljava/io/FileInputStream;
            3   26     6   cis  Lsun/security/krb5/internal/ccache/CCacheInputStream;
           18   23     7  cred  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           3    24      25  any
           2    27      28  any
           1    32      32  any
    Exceptions:
      throws java.io.IOException, sun.security.krb5.KrbException
    MethodParameters:
      Name  Flags
      name  

  public synchronized void update(sun.security.krb5.internal.ccache.Credentials);
    descriptor: (Lsun/security/krb5/internal/ccache/Credentials;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
        start local 1 // sun.security.krb5.internal.ccache.Credentials c
         0: .line 214
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
            ifnull 29
         1: .line 215
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
            invokevirtual java.util.Vector.isEmpty:()Z
            ifeq 4
         2: .line 216
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
            aload 1 /* c */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         3: .line 217
            goto 29
         4: .line 218
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* tmp */
        start local 2 // sun.security.krb5.internal.ccache.Credentials tmp
         5: .line 219
            iconst_0
            istore 3 /* matched */
        start local 3 // boolean matched
         6: .line 221
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         7: goto 24
         8: .line 222
      StackMap locals: sun.security.krb5.internal.ccache.Credentials int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
            iload 4 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast sun.security.krb5.internal.ccache.Credentials
            astore 2 /* tmp */
         9: .line 223
            aload 0 /* this */
            aload 1 /* c */
            getfield sun.security.krb5.internal.ccache.Credentials.sname:Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.getNameStrings:()[Ljava/lang/String;
        10: .line 224
            aload 2 /* tmp */
            getfield sun.security.krb5.internal.ccache.Credentials.sname:Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.getNameStrings:()[Ljava/lang/String;
        11: .line 223
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.match:([Ljava/lang/String;[Ljava/lang/String;)Z
        12: .line 224
            ifeq 23
        13: .line 225
            aload 1 /* c */
            getfield sun.security.krb5.internal.ccache.Credentials.sname:Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.getRealmString:()Ljava/lang/String;
        14: .line 226
            aload 2 /* tmp */
            getfield sun.security.krb5.internal.ccache.Credentials.sname:Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.getRealmString:()Ljava/lang/String;
        15: .line 225
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
        16: .line 226
            ifeq 23
        17: .line 227
            iconst_1
            istore 3 /* matched */
        18: .line 228
            aload 1 /* c */
            getfield sun.security.krb5.internal.ccache.Credentials.endtime:Lsun/security/krb5/internal/KerberosTime;
            invokevirtual sun.security.krb5.internal.KerberosTime.getTime:()J
            aload 2 /* tmp */
            getfield sun.security.krb5.internal.ccache.Credentials.endtime:Lsun/security/krb5/internal/KerberosTime;
            invokevirtual sun.security.krb5.internal.KerberosTime.getTime:()J
            lcmp
            iflt 23
        19: .line 229
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 21
        20: .line 230
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc " >>> FileCredentialsCache Ticket matched, overwrite the old one."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
            iload 4 /* i */
            invokevirtual java.util.Vector.removeElementAt:(I)V
        22: .line 235
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
            aload 1 /* c */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        23: .line 221
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 4 /* i */
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            if_icmplt 8
        end local 4 // int i
        25: .line 239
            iload 3 /* matched */
            ifne 29
        26: .line 240
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 28
        27: .line 241
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc " >>> FileCredentialsCache Ticket not exactly matched, add new one into cache."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        28: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
            aload 1 /* c */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 3 // boolean matched
        end local 2 // sun.security.krb5.internal.ccache.Credentials tmp
        29: .line 250
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.security.krb5.internal.ccache.Credentials c
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   30     0     this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
            0   30     1        c  Lsun/security/krb5/internal/ccache/Credentials;
            5   29     2      tmp  Lsun/security/krb5/internal/ccache/Credentials;
            6   29     3  matched  Z
            7   25     4        i  I
    MethodParameters:
      Name  Flags
      c     

  public synchronized sun.security.krb5.PrincipalName getPrimaryPrincipal();
    descriptor: ()Lsun/security/krb5/PrincipalName;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
         0: .line 253
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.primaryPrincipal:Lsun/security/krb5/PrincipalName;
            areturn
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;

  public synchronized void save();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
         0: .line 261
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: new java.io.FileOutputStream
            dup
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.cacheName:Ljava/lang/String;
            invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
            astore 3 /* fos */
        start local 3 // java.io.FileOutputStream fos
         2: .line 262
            new sun.security.krb5.internal.ccache.CCacheOutputStream
            dup
            aload 3 /* fos */
            invokespecial sun.security.krb5.internal.ccache.CCacheOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 4 /* cos */
        start local 4 // sun.security.krb5.internal.ccache.CCacheOutputStream cos
         3: .line 263
            aload 4 /* cos */
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.primaryPrincipal:Lsun/security/krb5/PrincipalName;
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.version:I
            invokevirtual sun.security.krb5.internal.ccache.CCacheOutputStream.writeHeader:(Lsun/security/krb5/PrincipalName;I)V
         4: .line 264
            aconst_null
            astore 5 /* tmp */
        start local 5 // sun.security.krb5.internal.ccache.Credentials[] tmp
         5: .line 265
            aload 0 /* this */
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.getCredsList:()[Lsun/security/krb5/internal/ccache/Credentials;
            dup
            astore 5 /* tmp */
            ifnull 11
         6: .line 266
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         7: goto 10
         8: .line 267
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache java.lang.Throwable java.lang.Throwable java.io.FileOutputStream sun.security.krb5.internal.ccache.CCacheOutputStream sun.security.krb5.internal.ccache.Credentials[] int
      StackMap stack:
            aload 4 /* cos */
            aload 5 /* tmp */
            iload 6 /* i */
            aaload
            invokevirtual sun.security.krb5.internal.ccache.CCacheOutputStream.addCreds:(Lsun/security/krb5/internal/ccache/Credentials;)V
         9: .line 266
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            aload 5 /* tmp */
            arraylength
            if_icmplt 8
        end local 6 // int i
        11: .line 270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.getConfigEntries:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 14
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache java.lang.Throwable java.lang.Throwable java.io.FileOutputStream sun.security.krb5.internal.ccache.CCacheOutputStream sun.security.krb5.internal.ccache.Credentials[] top java.util.Iterator
      StackMap stack:
        12: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry
            astore 6 /* e */
        start local 6 // sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry e
        13: .line 271
            aload 4 /* cos */
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.primaryPrincipal:Lsun/security/krb5/PrincipalName;
            aload 6 /* e */
            invokevirtual sun.security.krb5.internal.ccache.CCacheOutputStream.addConfigEntry:(Lsun/security/krb5/PrincipalName;Lsun/security/krb5/internal/ccache/CredentialsCache$ConfigEntry;)V
        end local 6 // sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry e
        14: .line 270
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 5 // sun.security.krb5.internal.ccache.Credentials[] tmp
        15: .line 273
            aload 4 /* cos */
            ifnull 18
            aload 4 /* cos */
            invokevirtual sun.security.krb5.internal.ccache.CCacheOutputStream.close:()V
            goto 18
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache java.lang.Throwable java.lang.Throwable java.io.FileOutputStream sun.security.krb5.internal.ccache.CCacheOutputStream
      StackMap stack: java.lang.Throwable
        16: astore 1
            aload 4 /* cos */
            ifnull 17
            aload 4 /* cos */
            invokevirtual sun.security.krb5.internal.ccache.CCacheOutputStream.close:()V
        end local 4 // sun.security.krb5.internal.ccache.CCacheOutputStream cos
      StackMap locals:
      StackMap stack:
        17: aload 1
            athrow
      StackMap locals:
      StackMap stack:
        18: aload 3 /* fos */
            ifnull 26
            aload 3 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 26
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 2
            aload 1
            ifnonnull 20
            aload 2
            astore 1
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 1
            aload 2
            if_acmpeq 21
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        21: aload 3 /* fos */
            ifnull 22
            aload 3 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
        end local 3 // java.io.FileOutputStream fos
      StackMap locals:
      StackMap stack:
        22: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        23: astore 2
            aload 1
            ifnonnull 24
            aload 2
            astore 1
            goto 25
      StackMap locals:
      StackMap stack:
        24: aload 1
            aload 2
            if_acmpeq 25
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        25: aload 1
            athrow
        26: .line 274
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   27     0  this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
            2   22     3   fos  Ljava/io/FileOutputStream;
            3   17     4   cos  Lsun/security/krb5/internal/ccache/CCacheOutputStream;
            5   15     5   tmp  [Lsun/security/krb5/internal/ccache/Credentials;
            7   11     6     i  I
           13   14     6     e  Lsun/security/krb5/internal/ccache/CredentialsCache$ConfigEntry;
      Exception table:
        from    to  target  type
           3    15      16  any
           2    18      19  any
           1    23      23  any
    Exceptions:
      throws java.io.IOException, sun.security.krb5.Asn1Exception

  boolean match(java.lang.String[], java.lang.String[]);
    descriptor: ([Ljava/lang/String;[Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
        start local 1 // java.lang.String[] s1
        start local 2 // java.lang.String[] s2
         0: .line 277
            aload 1 /* s1 */
            arraylength
            aload 2 /* s2 */
            arraylength
            if_icmpeq 2
         1: .line 278
            iconst_0
            ireturn
         2: .line 280
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 281
      StackMap locals: int
      StackMap stack:
            aload 1 /* s1 */
            iload 3 /* i */
            aaload
            aload 2 /* s2 */
            iload 3 /* i */
            aaload
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 6
         5: .line 282
            iconst_0
            ireturn
         6: .line 280
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 1 /* s1 */
            arraylength
            if_icmplt 4
        end local 3 // int i
         8: .line 286
            iconst_1
            ireturn
        end local 2 // java.lang.String[] s2
        end local 1 // java.lang.String[] s1
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
            0    9     1    s1  [Ljava/lang/String;
            0    9     2    s2  [Ljava/lang/String;
            3    8     3     i  I
    MethodParameters:
      Name  Flags
      s1    
      s2    

  public synchronized sun.security.krb5.internal.ccache.Credentials[] getCredsList();
    descriptor: ()[Lsun/security/krb5/internal/ccache/Credentials;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
         0: .line 293
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
            ifnull 1
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
            invokevirtual java.util.Vector.isEmpty:()Z
            ifeq 2
         1: .line 294
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            anewarray sun.security.krb5.internal.ccache.Credentials
            astore 1 /* tmp */
        start local 1 // sun.security.krb5.internal.ccache.Credentials[] tmp
         3: .line 297
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 7
         5: .line 298
      StackMap locals: sun.security.krb5.internal.ccache.Credentials[] int
      StackMap stack:
            aload 1 /* tmp */
            iload 2 /* i */
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
            iload 2 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast sun.security.krb5.internal.ccache.Credentials
            aastore
         6: .line 297
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.credentialsList:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            if_icmplt 5
        end local 2 // int i
         8: .line 300
            aload 1 /* tmp */
            areturn
        end local 1 // sun.security.krb5.internal.ccache.Credentials[] tmp
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
            3    9     1   tmp  [Lsun/security/krb5/internal/ccache/Credentials;
            4    8     2     i  I

  public sun.security.krb5.internal.ccache.Credentials getCreds(sun.security.krb5.internal.LoginOptions, sun.security.krb5.PrincipalName);
    descriptor: (Lsun/security/krb5/internal/LoginOptions;Lsun/security/krb5/PrincipalName;)Lsun/security/krb5/internal/ccache/Credentials;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
        start local 1 // sun.security.krb5.internal.LoginOptions options
        start local 2 // sun.security.krb5.PrincipalName sname
         0: .line 306
            aload 1 /* options */
            ifnonnull 2
         1: .line 307
            aload 0 /* this */
            aload 2 /* sname */
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.getCreds:(Lsun/security/krb5/PrincipalName;)Lsun/security/krb5/internal/ccache/Credentials;
            areturn
         2: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.getCredsList:()[Lsun/security/krb5/internal/ccache/Credentials;
            astore 3 /* list */
        start local 3 // sun.security.krb5.internal.ccache.Credentials[] list
         3: .line 310
            aload 3 /* list */
            ifnonnull 5
         4: .line 311
            aconst_null
            areturn
         5: .line 313
      StackMap locals: sun.security.krb5.internal.ccache.Credentials[]
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 11
         7: .line 314
      StackMap locals: int
      StackMap stack:
            aload 2 /* sname */
            aload 3 /* list */
            iload 4 /* i */
            aaload
            getfield sun.security.krb5.internal.ccache.Credentials.sname:Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.match:(Lsun/security/krb5/PrincipalName;)Z
            ifeq 10
         8: .line 315
            aload 3 /* list */
            iload 4 /* i */
            aaload
            getfield sun.security.krb5.internal.ccache.Credentials.flags:Lsun/security/krb5/internal/TicketFlags;
            aload 1 /* options */
            invokevirtual sun.security.krb5.internal.TicketFlags.match:(Lsun/security/krb5/internal/LoginOptions;)Z
            ifeq 10
         9: .line 316
            aload 3 /* list */
            iload 4 /* i */
            aaload
            areturn
        10: .line 313
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            aload 3 /* list */
            arraylength
            if_icmplt 7
        end local 4 // int i
        12: .line 321
            aconst_null
            areturn
        end local 3 // sun.security.krb5.internal.ccache.Credentials[] list
        end local 2 // sun.security.krb5.PrincipalName sname
        end local 1 // sun.security.krb5.internal.LoginOptions options
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
            0   13     1  options  Lsun/security/krb5/internal/LoginOptions;
            0   13     2    sname  Lsun/security/krb5/PrincipalName;
            3   13     3     list  [Lsun/security/krb5/internal/ccache/Credentials;
            6   12     4        i  I
    MethodParameters:
         Name  Flags
      options  
      sname    

  public void addConfigEntry(sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry);
    descriptor: (Lsun/security/krb5/internal/ccache/CredentialsCache$ConfigEntry;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
        start local 1 // sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry e
         0: .line 329
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.configEntries:Ljava/util/List;
            aload 1 /* e */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 330
            return
        end local 1 // sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry e
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
            0    2     1     e  Lsun/security/krb5/internal/ccache/CredentialsCache$ConfigEntry;
    MethodParameters:
      Name  Flags
      e     

  public java.util.List<sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry> getConfigEntries();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
         0: .line 334
            aload 0 /* this */
            getfield sun.security.krb5.internal.ccache.FileCredentialsCache.configEntries:Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
    Signature: ()Ljava/util/List<Lsun/security/krb5/internal/ccache/CredentialsCache$ConfigEntry;>;

  public sun.security.krb5.internal.ccache.Credentials getCreds(sun.security.krb5.PrincipalName);
    descriptor: (Lsun/security/krb5/PrincipalName;)Lsun/security/krb5/internal/ccache/Credentials;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
        start local 1 // sun.security.krb5.PrincipalName sname
         0: .line 342
            aload 0 /* this */
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.getCredsList:()[Lsun/security/krb5/internal/ccache/Credentials;
            astore 2 /* list */
        start local 2 // sun.security.krb5.internal.ccache.Credentials[] list
         1: .line 343
            aload 2 /* list */
            ifnonnull 3
         2: .line 344
            aconst_null
            areturn
         3: .line 346
      StackMap locals: sun.security.krb5.internal.ccache.Credentials[]
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 8
         5: .line 347
      StackMap locals: int
      StackMap stack:
            aload 1 /* sname */
            aload 2 /* list */
            iload 3 /* i */
            aaload
            getfield sun.security.krb5.internal.ccache.Credentials.sname:Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.match:(Lsun/security/krb5/PrincipalName;)Z
            ifeq 7
         6: .line 348
            aload 2 /* list */
            iload 3 /* i */
            aaload
            areturn
         7: .line 346
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 2 /* list */
            arraylength
            if_icmplt 5
        end local 3 // int i
         9: .line 352
            aconst_null
            areturn
        end local 2 // sun.security.krb5.internal.ccache.Credentials[] list
        end local 1 // sun.security.krb5.PrincipalName sname
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
            0   10     1  sname  Lsun/security/krb5/PrincipalName;
            1   10     2   list  [Lsun/security/krb5/internal/ccache/Credentials;
            4    9     3      i  I
    MethodParameters:
       Name  Flags
      sname  

  public sun.security.krb5.Credentials getInitialCreds();
    descriptor: ()Lsun/security/krb5/Credentials;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=14, args_size=1
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
         0: .line 357
            aload 0 /* this */
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.getDefaultCreds:()Lsun/security/krb5/internal/ccache/Credentials;
            astore 1 /* defaultCreds */
        start local 1 // sun.security.krb5.internal.ccache.Credentials defaultCreds
         1: .line 358
            aload 1 /* defaultCreds */
            ifnonnull 3
         2: .line 359
            aconst_null
            areturn
         3: .line 361
      StackMap locals: sun.security.krb5.internal.ccache.Credentials
      StackMap stack:
            aload 1 /* defaultCreds */
            invokevirtual sun.security.krb5.internal.ccache.Credentials.setKrbCreds:()Lsun/security/krb5/Credentials;
            astore 2 /* tgt */
        start local 2 // sun.security.krb5.Credentials tgt
         4: .line 363
            aload 0 /* this */
            ldc "proxy_impersonator"
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.getConfigEntry:(Ljava/lang/String;)Lsun/security/krb5/internal/ccache/CredentialsCache$ConfigEntry;
            astore 3 /* entry */
        start local 3 // sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry entry
         5: .line 364
            aload 3 /* entry */
            ifnonnull 9
         6: .line 365
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 8
         7: .line 366
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "get normal credential"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 368
      StackMap locals: sun.security.krb5.Credentials sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry
      StackMap stack:
            aload 2 /* tgt */
            areturn
         9: .line 373
      StackMap locals:
      StackMap stack:
            ldc "jdk.security.krb5.default.initiate.credential"
        10: .line 372
            invokestatic sun.security.util.SecurityProperties.privilegedGetOverridable:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* prop */
        start local 5 // java.lang.String prop
        11: .line 374
            aload 5 /* prop */
            ifnonnull 13
        12: .line 375
            ldc "always-impersonate"
            astore 5 /* prop */
        13: .line 377
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache sun.security.krb5.internal.ccache.Credentials sun.security.krb5.Credentials sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry top java.lang.String
      StackMap stack:
            aload 5 /* prop */
            dup
            astore 6
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
          -1438305945: 14
           -222747717: 15
            440640621: 16
              default: 24
          }
      StackMap locals: java.lang.String
      StackMap stack:
        14: aload 6
            ldc "try-impersonate"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 20
            goto 24
      StackMap locals:
      StackMap stack:
        15: aload 6
            ldc "always-impersonate"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
            goto 24
      StackMap locals:
      StackMap stack:
        16: aload 6
            ldc "no-impersonate"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
            goto 24
        17: .line 379
      StackMap locals:
      StackMap stack:
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 19
        18: .line 380
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "get normal credential"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        19: .line 382
      StackMap locals:
      StackMap stack:
            aload 2 /* tgt */
            areturn
        20: .line 384
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* force */
        start local 4 // boolean force
        21: .line 385
            goto 27
        end local 4 // boolean force
        22: .line 387
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* force */
        start local 4 // boolean force
        23: .line 388
            goto 27
        end local 4 // boolean force
        24: .line 390
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
        25: .line 391
            ldc "Invalid jdk.security.krb5.default.initiate.credential"
        26: .line 390
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // boolean force
        27: .line 395
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache sun.security.krb5.internal.ccache.Credentials sun.security.krb5.Credentials sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry int java.lang.String
      StackMap stack:
            new sun.security.krb5.PrincipalName
            dup
        28: .line 396
            new java.lang.String
            dup
            aload 3 /* entry */
            invokevirtual sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry.getData:()[B
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
        29: .line 395
            invokespecial sun.security.krb5.PrincipalName.<init>:(Ljava/lang/String;)V
            astore 7 /* service */
        start local 7 // sun.security.krb5.PrincipalName service
        30: .line 397
            aload 2 /* tgt */
            invokevirtual sun.security.krb5.Credentials.getClient:()Lsun/security/krb5/PrincipalName;
            aload 7 /* service */
            invokevirtual sun.security.krb5.PrincipalName.equals:(Ljava/lang/Object;)Z
            ifne 36
        31: .line 398
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 33
        32: .line 399
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "proxy_impersonator does not match service name"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        33: .line 401
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache sun.security.krb5.internal.ccache.Credentials sun.security.krb5.Credentials sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry int java.lang.String top sun.security.krb5.PrincipalName
      StackMap stack:
            iload 4 /* force */
            ifeq 34
            aconst_null
            goto 35
      StackMap locals:
      StackMap stack:
        34: aload 2 /* tgt */
      StackMap locals:
      StackMap stack: sun.security.krb5.Credentials
        35: areturn
        36: .line 403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.getPrimaryPrincipal:()Lsun/security/krb5/PrincipalName;
            astore 8 /* client */
        start local 8 // sun.security.krb5.PrincipalName client
        37: .line 404
            aconst_null
            astore 9 /* proxy */
        start local 9 // sun.security.krb5.internal.ccache.Credentials proxy
        38: .line 405
            aload 0 /* this */
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.getCredsList:()[Lsun/security/krb5/internal/ccache/Credentials;
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 45
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache sun.security.krb5.internal.ccache.Credentials sun.security.krb5.Credentials sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry int java.lang.String top sun.security.krb5.PrincipalName sun.security.krb5.PrincipalName sun.security.krb5.internal.ccache.Credentials top int int sun.security.krb5.internal.ccache.Credentials[]
      StackMap stack:
        39: aload 13
            iload 11
            aaload
            astore 10 /* c */
        start local 10 // sun.security.krb5.internal.ccache.Credentials c
        40: .line 406
            aload 10 /* c */
            invokevirtual sun.security.krb5.internal.ccache.Credentials.getClientPrincipal:()Lsun/security/krb5/PrincipalName;
            aload 8 /* client */
            invokevirtual sun.security.krb5.PrincipalName.equals:(Ljava/lang/Object;)Z
            ifeq 44
        41: .line 407
            aload 10 /* c */
            invokevirtual sun.security.krb5.internal.ccache.Credentials.getServicePrincipal:()Lsun/security/krb5/PrincipalName;
            aload 7 /* service */
            invokevirtual sun.security.krb5.PrincipalName.equals:(Ljava/lang/Object;)Z
            ifeq 44
        42: .line 408
            aload 10 /* c */
            astore 9 /* proxy */
        43: .line 409
            goto 46
        end local 10 // sun.security.krb5.internal.ccache.Credentials c
        44: .line 405
      StackMap locals:
      StackMap stack:
            iinc 11 1
      StackMap locals:
      StackMap stack:
        45: iload 11
            iload 12
            if_icmplt 39
        46: .line 412
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache sun.security.krb5.internal.ccache.Credentials sun.security.krb5.Credentials sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry int java.lang.String top sun.security.krb5.PrincipalName sun.security.krb5.PrincipalName sun.security.krb5.internal.ccache.Credentials
      StackMap stack:
            aload 9 /* proxy */
            ifnonnull 52
        47: .line 413
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 49
        48: .line 414
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Cannot find evidence ticket in ccache"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        49: .line 416
      StackMap locals:
      StackMap stack:
            iload 4 /* force */
            ifeq 50
            aconst_null
            goto 51
      StackMap locals:
      StackMap stack:
        50: aload 2 /* tgt */
      StackMap locals:
      StackMap stack: sun.security.krb5.Credentials
        51: areturn
        52: .line 418
      StackMap locals:
      StackMap stack:
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 54
        53: .line 419
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Get proxied credential"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        54: .line 421
      StackMap locals:
      StackMap stack:
            aload 2 /* tgt */
            aload 9 /* proxy */
            invokevirtual sun.security.krb5.internal.ccache.Credentials.setKrbCreds:()Lsun/security/krb5/Credentials;
            invokevirtual sun.security.krb5.Credentials.setProxy:(Lsun/security/krb5/Credentials;)Lsun/security/krb5/Credentials;
        55: areturn
        end local 9 // sun.security.krb5.internal.ccache.Credentials proxy
        end local 8 // sun.security.krb5.PrincipalName client
        end local 7 // sun.security.krb5.PrincipalName service
        56: .line 422
      StackMap locals: sun.security.krb5.internal.ccache.FileCredentialsCache sun.security.krb5.internal.ccache.Credentials sun.security.krb5.Credentials sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry int java.lang.String
      StackMap stack: sun.security.krb5.KrbException
            pop
        57: .line 423
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 59
        58: .line 424
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Impersonation with ccache failed"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        59: .line 426
      StackMap locals:
      StackMap stack:
            iload 4 /* force */
            ifeq 60
            aconst_null
            goto 61
      StackMap locals:
      StackMap stack:
        60: aload 2 /* tgt */
      StackMap locals:
      StackMap stack: sun.security.krb5.Credentials
        61: areturn
        end local 5 // java.lang.String prop
        end local 4 // boolean force
        end local 3 // sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry entry
        end local 2 // sun.security.krb5.Credentials tgt
        end local 1 // sun.security.krb5.internal.ccache.Credentials defaultCreds
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   62     0          this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
            1   62     1  defaultCreds  Lsun/security/krb5/internal/ccache/Credentials;
            4   62     2           tgt  Lsun/security/krb5/Credentials;
            5   62     3         entry  Lsun/security/krb5/internal/ccache/CredentialsCache$ConfigEntry;
           21   22     4         force  Z
           23   24     4         force  Z
           27   62     4         force  Z
           11   62     5          prop  Ljava/lang/String;
           30   56     7       service  Lsun/security/krb5/PrincipalName;
           37   56     8        client  Lsun/security/krb5/PrincipalName;
           38   56     9         proxy  Lsun/security/krb5/internal/ccache/Credentials;
           40   44    10             c  Lsun/security/krb5/internal/ccache/Credentials;
      Exception table:
        from    to  target  type
          27    35      56  Class sun.security.krb5.KrbException
          36    51      56  Class sun.security.krb5.KrbException
          52    55      56  Class sun.security.krb5.KrbException

  public sun.security.krb5.internal.ccache.Credentials getDefaultCreds();
    descriptor: ()Lsun/security/krb5/internal/ccache/Credentials;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
         0: .line 431
            aload 0 /* this */
            invokevirtual sun.security.krb5.internal.ccache.FileCredentialsCache.getCredsList:()[Lsun/security/krb5/internal/ccache/Credentials;
            astore 1 /* list */
        start local 1 // sun.security.krb5.internal.ccache.Credentials[] list
         1: .line 432
            aload 1 /* list */
            ifnonnull 3
         2: .line 433
            aconst_null
            areturn
         3: .line 435
      StackMap locals: sun.security.krb5.internal.ccache.Credentials[]
      StackMap stack:
            aload 1 /* list */
            arraylength
            iconst_1
            isub
            istore 2 /* i */
        start local 2 // int i
         4: goto 10
         5: .line 436
      StackMap locals: int
      StackMap stack:
            aload 1 /* list */
            iload 2 /* i */
            aaload
            getfield sun.security.krb5.internal.ccache.Credentials.sname:Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.toString:()Ljava/lang/String;
            ldc "krbtgt"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         6: .line 437
            aload 1 /* list */
            iload 2 /* i */
            aaload
            getfield sun.security.krb5.internal.ccache.Credentials.sname:Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.getNameStrings:()[Ljava/lang/String;
            astore 3 /* nameStrings */
        start local 3 // java.lang.String[] nameStrings
         7: .line 439
            aload 3 /* nameStrings */
            iconst_1
            aaload
            aload 1 /* list */
            iload 2 /* i */
            aaload
            getfield sun.security.krb5.internal.ccache.Credentials.sname:Lsun/security/krb5/PrincipalName;
            invokevirtual sun.security.krb5.PrincipalName.getRealm:()Lsun/security/krb5/Realm;
            invokevirtual sun.security.krb5.Realm.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 440
            aload 1 /* list */
            iload 2 /* i */
            aaload
            areturn
        end local 3 // java.lang.String[] nameStrings
         9: .line 435
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            ifge 5
        end local 2 // int i
        11: .line 445
            aconst_null
            areturn
        end local 1 // sun.security.krb5.internal.ccache.Credentials[] list
        end local 0 // sun.security.krb5.internal.ccache.FileCredentialsCache this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lsun/security/krb5/internal/ccache/FileCredentialsCache;
            1   12     1         list  [Lsun/security/krb5/internal/ccache/Credentials;
            4   11     2            i  I
            7    9     3  nameStrings  [Ljava/lang/String;

  public static java.lang.String getDefaultCacheName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=0
         0: .line 460
            ldc "krb5cc"
            astore 0 /* stdCacheNameComponent */
        start local 0 // java.lang.String stdCacheNameComponent
         1: .line 466
            new sun.security.krb5.internal.ccache.FileCredentialsCache$1
            dup
            invokespecial sun.security.krb5.internal.ccache.FileCredentialsCache$1.<init>:()V
         2: .line 465
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* name */
        start local 1 // java.lang.String name
         3: .line 478
            aload 1 /* name */
            ifnull 7
         4: .line 479
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 6
         5: .line 480
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ">>>KinitOptions cache name is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 482
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 1 /* name */
            areturn
         7: .line 486
      StackMap locals:
      StackMap stack:
            ldc "os.name"
            invokestatic sun.security.action.GetPropertyAction.privilegedGetProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* osname */
        start local 2 // java.lang.String osname
         8: .line 499
            aload 2 /* osname */
            ifnull 21
            aload 2 /* osname */
            ldc "Windows"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 21
         9: .line 500
            invokestatic jdk.internal.misc.VM.getuid:()J
            lstore 3 /* uid */
        start local 3 // long uid
        10: .line 501
            lload 3 /* uid */
            ldc -1
            lcmp
            ifeq 19
        11: .line 502
            new java.lang.StringBuilder
            dup
            getstatic java.io.File.separator:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "tmp"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 503
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* stdCacheNameComponent */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 3 /* uid */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        13: .line 502
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* name */
        14: .line 504
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 18
        15: .line 505
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ">>>KinitOptions cache name is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        16: .line 506
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 505
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        18: .line 508
      StackMap locals: java.lang.String long
      StackMap stack:
            aload 1 /* name */
            areturn
        19: .line 510
      StackMap locals:
      StackMap stack:
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 21
        20: .line 511
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Error in obtaining uid for Unix platforms Using user's home directory"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 3 // long uid
        21: .line 520
      StackMap locals:
      StackMap stack:
            ldc "user.name"
            invokestatic sun.security.action.GetPropertyAction.privilegedGetProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* user_name */
        start local 3 // java.lang.String user_name
        22: .line 522
            ldc "user.home"
            invokestatic sun.security.action.GetPropertyAction.privilegedGetProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* user_home */
        start local 4 // java.lang.String user_home
        23: .line 524
            aload 4 /* user_home */
            ifnonnull 25
        24: .line 525
            ldc "user.dir"
            invokestatic sun.security.action.GetPropertyAction.privilegedGetProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* user_home */
        25: .line 528
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* user_name */
            ifnull 30
        26: .line 529
            new java.lang.StringBuilder
            dup
            aload 4 /* user_home */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        27: .line 530
            aload 0 /* stdCacheNameComponent */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* user_name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: .line 529
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* name */
        29: .line 531
            goto 31
        30: .line 532
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 4 /* user_home */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* stdCacheNameComponent */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* name */
        31: .line 535
      StackMap locals:
      StackMap stack:
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 33
        32: .line 536
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ">>>KinitOptions cache name is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        33: .line 539
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 4 // java.lang.String user_home
        end local 3 // java.lang.String user_name
        end local 2 // java.lang.String osname
        end local 1 // java.lang.String name
        end local 0 // java.lang.String stdCacheNameComponent
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            1   34     0  stdCacheNameComponent  Ljava/lang/String;
            3   34     1                   name  Ljava/lang/String;
            8   34     2                 osname  Ljava/lang/String;
           10   21     3                    uid  J
           22   34     3              user_name  Ljava/lang/String;
           23   34     4              user_home  Ljava/lang/String;

  public static java.lang.String checkValidation(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.String name
         0: .line 543
            aconst_null
            astore 1 /* fullname */
        start local 1 // java.lang.String fullname
         1: .line 544
            aload 0 /* name */
            ifnonnull 3
         2: .line 545
            aconst_null
            areturn
         3: .line 549
      StackMap locals: java.lang.String
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* name */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 1 /* fullname */
         4: .line 550
            new java.io.File
            dup
            aload 1 /* fullname */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 2 /* fCheck */
        start local 2 // java.io.File fCheck
         5: .line 551
            aload 2 /* fCheck */
            invokevirtual java.io.File.exists:()Z
            ifne 10
         6: .line 553
            new java.io.File
            dup
            aload 2 /* fCheck */
            invokevirtual java.io.File.getParent:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 3 /* temp */
        start local 3 // java.io.File temp
         7: .line 555
            aload 3 /* temp */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 9
         8: .line 556
            aconst_null
            astore 1 /* fullname */
         9: .line 557
      StackMap locals: java.io.File java.io.File
      StackMap stack:
            aconst_null
            astore 3
        end local 3 // java.io.File temp
        10: .line 559
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2
        end local 2 // java.io.File fCheck
        11: .line 561
            goto 14
      StackMap locals: java.lang.String java.lang.String
      StackMap stack: java.io.IOException
        12: pop
        13: .line 562
            aconst_null
            astore 1 /* fullname */
        14: .line 564
      StackMap locals:
      StackMap stack:
            aload 1 /* fullname */
            areturn
        end local 1 // java.lang.String fullname
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      name  Ljava/lang/String;
            1   15     1  fullname  Ljava/lang/String;
            5   11     2    fCheck  Ljava/io/File;
            7   10     3      temp  Ljava/io/File;
      Exception table:
        from    to  target  type
           3    11      12  Class java.io.IOException
    MethodParameters:
      Name  Flags
      name  

  private static java.lang.String exec(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // java.lang.String c
         0: .line 569
            new java.util.StringTokenizer
            dup
            aload 0 /* c */
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
            astore 1 /* st */
        start local 1 // java.util.StringTokenizer st
         1: .line 570
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 2 /* v */
        start local 2 // java.util.Vector v
         2: .line 571
            goto 4
         3: .line 572
      StackMap locals: java.util.StringTokenizer java.util.Vector
      StackMap stack:
            aload 2 /* v */
            aload 1 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         4: .line 571
      StackMap locals:
      StackMap stack:
            aload 1 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 3
         5: .line 574
            aload 2 /* v */
            invokevirtual java.util.Vector.size:()I
            anewarray java.lang.String
            astore 3 /* command */
        start local 3 // java.lang.String[] command
         6: .line 575
            aload 2 /* v */
            aload 3 /* command */
            invokevirtual java.util.Vector.copyInto:([Ljava/lang/Object;)V
         7: .line 580
            new sun.security.krb5.internal.ccache.FileCredentialsCache$2
            dup
            aload 3 /* command */
            invokespecial sun.security.krb5.internal.ccache.FileCredentialsCache$2.<init>:([Ljava/lang/String;)V
         8: .line 579
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Process
         9: .line 578
            astore 4 /* p */
        start local 4 // java.lang.Process p
        10: .line 592
            aload 4 /* p */
            ifnonnull 12
        11: .line 594
            aconst_null
            areturn
        12: .line 598
      StackMap locals: java.lang.String[] java.lang.Process
      StackMap stack:
            new java.io.BufferedReader
            dup
        13: .line 599
            new java.io.InputStreamReader
            dup
            aload 4 /* p */
            invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
            getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
        14: .line 598
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
        15: .line 597
            astore 5 /* commandResult */
        start local 5 // java.io.BufferedReader commandResult
        16: .line 600
            aconst_null
            astore 6 /* s1 */
        start local 6 // java.lang.String s1
        17: .line 601
            aload 3 /* command */
            arraylength
            iconst_1
            if_icmpne 29
        18: .line 602
            aload 3 /* command */
            iconst_0
            aaload
            ldc "/usr/bin/env"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        19: .line 603
            goto 27
        20: .line 604
      StackMap locals: java.io.BufferedReader java.lang.String
      StackMap stack:
            aload 6 /* s1 */
            invokevirtual java.lang.String.length:()I
            bipush 11
            if_icmplt 27
        21: .line 605
            aload 6 /* s1 */
            iconst_0
            bipush 11
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
        22: .line 606
            ldc "KRB5CCNAME="
        23: .line 605
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
        24: .line 606
            ifeq 27
        25: .line 607
            aload 6 /* s1 */
            bipush 11
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 6 /* s1 */
        26: .line 608
            goto 30
        27: .line 603
      StackMap locals:
      StackMap stack:
            aload 5 /* commandResult */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 6 /* s1 */
            ifnonnull 20
        28: .line 612
            goto 30
      StackMap locals:
      StackMap stack:
        29: aload 5 /* commandResult */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            astore 6 /* s1 */
        30: .line 613
      StackMap locals:
      StackMap stack:
            aload 5 /* commandResult */
            invokevirtual java.io.BufferedReader.close:()V
        31: .line 614
            aload 6 /* s1 */
        32: areturn
        end local 6 // java.lang.String s1
        end local 5 // java.io.BufferedReader commandResult
        end local 4 // java.lang.Process p
        33: .line 615
      StackMap locals: java.lang.String java.util.StringTokenizer java.util.Vector java.lang.String[]
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        34: .line 616
            getstatic sun.security.krb5.internal.ccache.FileCredentialsCache.DEBUG:Z
            ifeq 36
        35: .line 617
            aload 4 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 4 // java.lang.Exception e
        36: .line 620
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.lang.String[] command
        end local 2 // java.util.Vector v
        end local 1 // java.util.StringTokenizer st
        end local 0 // java.lang.String c
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   37     0              c  Ljava/lang/String;
            1   37     1             st  Ljava/util/StringTokenizer;
            2   37     2              v  Ljava/util/Vector<Ljava/lang/String;>;
            6   37     3        command  [Ljava/lang/String;
           10   33     4              p  Ljava/lang/Process;
           16   33     5  commandResult  Ljava/io/BufferedReader;
           17   33     6             s1  Ljava/lang/String;
           34   36     4              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           7    11      33  Class java.lang.Exception
          12    32      33  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      c     
}
SourceFile: "FileCredentialsCache.java"
NestMembers:
  sun.security.krb5.internal.ccache.FileCredentialsCache$1  sun.security.krb5.internal.ccache.FileCredentialsCache$2
InnerClasses:
  public ConfigEntry = sun.security.krb5.internal.ccache.CredentialsCache$ConfigEntry of sun.security.krb5.internal.ccache.CredentialsCache
  sun.security.krb5.internal.ccache.FileCredentialsCache$1
  sun.security.krb5.internal.ccache.FileCredentialsCache$2