public class sun.security.krb5.internal.rcache.DflCache extends sun.security.krb5.internal.ReplayCache
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.krb5.internal.rcache.DflCache
  super_class: sun.security.krb5.internal.ReplayCache
{
  private static final int KRB5_RV_VNO;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1281

  private static final int EXCESSREPS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 30

  private final java.lang.String source;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static long uid;
    descriptor: J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 111
            invokestatic jdk.internal.misc.VM.geteuid:()J
            putstatic sun.security.krb5.internal.rcache.DflCache.uid:J
         1: .line 112
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.krb5.internal.rcache.DflCache this
        start local 1 // java.lang.String source
         0: .line 114
            aload 0 /* this */
            invokespecial sun.security.krb5.internal.ReplayCache.<init>:()V
         1: .line 115
            aload 0 /* this */
            aload 1 /* source */
            putfield sun.security.krb5.internal.rcache.DflCache.source:Ljava/lang/String;
         2: .line 116
            return
        end local 1 // java.lang.String source
        end local 0 // sun.security.krb5.internal.rcache.DflCache this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lsun/security/krb5/internal/rcache/DflCache;
            0    3     1  source  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      source  

  private static java.lang.String defaultPath();
    descriptor: ()Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 119
            ldc "java.io.tmpdir"
            invokestatic sun.security.action.GetPropertyAction.privilegedGetProperty:(Ljava/lang/String;)Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.String defaultFile(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String server
         0: .line 124
            aload 0 /* server */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            istore 1 /* slash */
        start local 1 // int slash
         1: .line 125
            iload 1 /* slash */
            iconst_m1
            if_icmpne 3
         2: .line 127
            aload 0 /* server */
            bipush 64
            invokevirtual java.lang.String.indexOf:(I)I
            istore 1 /* slash */
         3: .line 129
      StackMap locals: int
      StackMap stack:
            iload 1 /* slash */
            iconst_m1
            if_icmpeq 5
         4: .line 131
            aload 0 /* server */
            iconst_0
            iload 1 /* slash */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 0 /* server */
         5: .line 133
      StackMap locals:
      StackMap stack:
            getstatic sun.security.krb5.internal.rcache.DflCache.uid:J
            ldc -1
            lcmp
            ifeq 7
         6: .line 134
            new java.lang.StringBuilder
            dup
            aload 0 /* server */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic sun.security.krb5.internal.rcache.DflCache.uid:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 0 /* server */
         7: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* server */
            areturn
        end local 1 // int slash
        end local 0 // java.lang.String server
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  server  Ljava/lang/String;
            1    8     1   slash  I
    MethodParameters:
        Name  Flags
      server  

  private static java.nio.file.Path getFileName(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/nio/file/Path;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.lang.String source
        start local 1 // java.lang.String server
         0: .line 141
            aload 0 /* source */
            ldc "dfl"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 142
            invokestatic sun.security.krb5.internal.rcache.DflCache.defaultPath:()Ljava/lang/String;
            astore 2 /* path */
        start local 2 // java.lang.String path
         2: .line 143
            aload 1 /* server */
            invokestatic sun.security.krb5.internal.rcache.DflCache.defaultFile:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* file */
        start local 3 // java.lang.String file
         3: .line 144
            goto 21
        end local 3 // java.lang.String file
        end local 2 // java.lang.String path
      StackMap locals:
      StackMap stack:
         4: aload 0 /* source */
            ldc "dfl:"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 20
         5: .line 145
            aload 0 /* source */
            iconst_4
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 0 /* source */
         6: .line 146
            aload 0 /* source */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 4 /* pos */
        start local 4 // int pos
         7: .line 147
            aload 0 /* source */
            bipush 92
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 5 /* pos1 */
        start local 5 // int pos1
         8: .line 148
            iload 5 /* pos1 */
            iload 4 /* pos */
            if_icmple 9
            iload 5 /* pos1 */
            istore 4 /* pos */
         9: .line 149
      StackMap locals: java.lang.String java.lang.String top top int int
      StackMap stack:
            iload 4 /* pos */
            iconst_m1
            if_icmpne 13
        10: .line 151
            invokestatic sun.security.krb5.internal.rcache.DflCache.defaultPath:()Ljava/lang/String;
            astore 2 /* path */
        start local 2 // java.lang.String path
        11: .line 152
            aload 0 /* source */
            astore 3 /* file */
        start local 3 // java.lang.String file
        12: .line 153
            goto 21
        end local 3 // java.lang.String file
        end local 2 // java.lang.String path
      StackMap locals:
      StackMap stack:
        13: new java.io.File
            dup
            aload 0 /* source */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 17
        14: .line 155
            aload 0 /* source */
            astore 2 /* path */
        start local 2 // java.lang.String path
        15: .line 156
            aload 1 /* server */
            invokestatic sun.security.krb5.internal.rcache.DflCache.defaultFile:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* file */
        start local 3 // java.lang.String file
        16: .line 157
            goto 21
        end local 3 // java.lang.String file
        end local 2 // java.lang.String path
        17: .line 159
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* path */
        start local 2 // java.lang.String path
        18: .line 160
            aload 0 /* source */
            astore 3 /* file */
        end local 5 // int pos1
        end local 4 // int pos
        start local 3 // java.lang.String file
        19: .line 162
            goto 21
        end local 3 // java.lang.String file
        end local 2 // java.lang.String path
        20: .line 163
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        start local 2 // java.lang.String path
        start local 3 // java.lang.String file
        21: .line 165
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            new java.io.File
            dup
            aload 2 /* path */
            aload 3 /* file */
            invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            areturn
        end local 3 // java.lang.String file
        end local 2 // java.lang.String path
        end local 1 // java.lang.String server
        end local 0 // java.lang.String source
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   22     0  source  Ljava/lang/String;
            0   22     1  server  Ljava/lang/String;
            2    4     2    path  Ljava/lang/String;
           11   13     2    path  Ljava/lang/String;
           15   17     2    path  Ljava/lang/String;
           18   20     2    path  Ljava/lang/String;
           21   22     2    path  Ljava/lang/String;
            3    4     3    file  Ljava/lang/String;
           12   13     3    file  Ljava/lang/String;
           16   17     3    file  Ljava/lang/String;
           19   20     3    file  Ljava/lang/String;
           21   22     3    file  Ljava/lang/String;
            7   19     4     pos  I
            8   19     5    pos1  I
    MethodParameters:
        Name  Flags
      source  
      server  

  public void checkAndStore(sun.security.krb5.internal.KerberosTime, sun.security.krb5.internal.rcache.AuthTimeWithHash);
    descriptor: (Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/internal/rcache/AuthTimeWithHash;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.security.krb5.internal.rcache.DflCache this
        start local 1 // sun.security.krb5.internal.KerberosTime currTime
        start local 2 // sun.security.krb5.internal.rcache.AuthTimeWithHash time
         0: .line 172
            aload 0 /* this */
            aload 1 /* currTime */
            aload 2 /* time */
            invokevirtual sun.security.krb5.internal.rcache.DflCache.checkAndStore0:(Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/internal/rcache/AuthTimeWithHash;)V
         1: .line 173
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
         3: .line 174
            new sun.security.krb5.internal.KrbApErrException
            dup
            bipush 60
            invokespecial sun.security.krb5.internal.KrbApErrException.<init>:(I)V
            astore 4 /* ke */
        start local 4 // sun.security.krb5.internal.KrbApErrException ke
         4: .line 175
            aload 4 /* ke */
            aload 3 /* ioe */
            invokevirtual sun.security.krb5.internal.KrbApErrException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
         5: .line 176
            aload 4 /* ke */
            athrow
        end local 4 // sun.security.krb5.internal.KrbApErrException ke
        end local 3 // java.io.IOException ioe
         6: .line 178
      StackMap locals:
      StackMap stack:
            return
        end local 2 // sun.security.krb5.internal.rcache.AuthTimeWithHash time
        end local 1 // sun.security.krb5.internal.KerberosTime currTime
        end local 0 // sun.security.krb5.internal.rcache.DflCache this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lsun/security/krb5/internal/rcache/DflCache;
            0    7     1  currTime  Lsun/security/krb5/internal/KerberosTime;
            0    7     2      time  Lsun/security/krb5/internal/rcache/AuthTimeWithHash;
            3    6     3       ioe  Ljava/io/IOException;
            4    6     4        ke  Lsun/security/krb5/internal/KrbApErrException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws sun.security.krb5.internal.KrbApErrException
    MethodParameters:
          Name  Flags
      currTime  
      time      

  private synchronized void checkAndStore0(sun.security.krb5.internal.KerberosTime, sun.security.krb5.internal.rcache.AuthTimeWithHash);
    descriptor: (Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/internal/rcache/AuthTimeWithHash;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // sun.security.krb5.internal.rcache.DflCache this
        start local 1 // sun.security.krb5.internal.KerberosTime currTime
        start local 2 // sun.security.krb5.internal.rcache.AuthTimeWithHash time
         0: .line 182
            aload 0 /* this */
            getfield sun.security.krb5.internal.rcache.DflCache.source:Ljava/lang/String;
            aload 2 /* time */
            getfield sun.security.krb5.internal.rcache.AuthTimeWithHash.server:Ljava/lang/String;
            invokestatic sun.security.krb5.internal.rcache.DflCache.getFileName:(Ljava/lang/String;Ljava/lang/String;)Ljava/nio/file/Path;
            astore 3 /* p */
        start local 3 // java.nio.file.Path p
         1: .line 183
            iconst_0
            istore 4 /* missed */
        start local 4 // int missed
         2: .line 184
            aconst_null
            astore 5
            aconst_null
            astore 6
         3: new sun.security.krb5.internal.rcache.DflCache$Storage
            dup
            invokespecial sun.security.krb5.internal.rcache.DflCache$Storage.<init>:()V
            astore 7 /* s */
        start local 7 // sun.security.krb5.internal.rcache.DflCache$Storage s
         4: .line 186
            aload 7 /* s */
            aload 3 /* p */
            aload 2 /* time */
            aload 1 /* currTime */
            invokevirtual sun.security.krb5.internal.rcache.DflCache$Storage.loadAndCheck:(Ljava/nio/file/Path;Lsun/security/krb5/internal/rcache/AuthTimeWithHash;Lsun/security/krb5/internal/KerberosTime;)I
            istore 4 /* missed */
         5: .line 187
            goto 9
      StackMap locals: sun.security.krb5.internal.rcache.DflCache sun.security.krb5.internal.KerberosTime sun.security.krb5.internal.rcache.AuthTimeWithHash java.nio.file.Path int java.lang.Throwable java.lang.Throwable sun.security.krb5.internal.rcache.DflCache$Storage
      StackMap stack: java.io.IOException
         6: pop
         7: .line 189
            aload 3 /* p */
            invokestatic sun.security.krb5.internal.rcache.DflCache$Storage.create:(Ljava/nio/file/Path;)V
         8: .line 190
            aload 7 /* s */
            aload 3 /* p */
            aload 2 /* time */
            aload 1 /* currTime */
            invokevirtual sun.security.krb5.internal.rcache.DflCache$Storage.loadAndCheck:(Ljava/nio/file/Path;Lsun/security/krb5/internal/rcache/AuthTimeWithHash;Lsun/security/krb5/internal/KerberosTime;)I
            istore 4 /* missed */
         9: .line 192
      StackMap locals:
      StackMap stack:
            aload 7 /* s */
            aload 2 /* time */
            invokevirtual sun.security.krb5.internal.rcache.DflCache$Storage.append:(Lsun/security/krb5/internal/rcache/AuthTimeWithHash;)V
        10: .line 193
            aload 7 /* s */
            ifnull 16
            aload 7 /* s */
            invokevirtual sun.security.krb5.internal.rcache.DflCache$Storage.close:()V
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 5
            aload 7 /* s */
            ifnull 12
            aload 7 /* s */
            invokevirtual sun.security.krb5.internal.rcache.DflCache$Storage.close:()V
        end local 7 // sun.security.krb5.internal.rcache.DflCache$Storage s
      StackMap locals:
      StackMap stack:
        12: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 6
            aload 5
            ifnonnull 14
            aload 6
            astore 5
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 5
            aload 6
            if_acmpeq 15
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 5
            athrow
        16: .line 194
      StackMap locals:
      StackMap stack:
            iload 4 /* missed */
            bipush 30
            if_icmple 18
        17: .line 195
            aload 3 /* p */
            aload 1 /* currTime */
            invokestatic sun.security.krb5.internal.rcache.DflCache$Storage.expunge:(Ljava/nio/file/Path;Lsun/security/krb5/internal/KerberosTime;)V
        18: .line 197
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int missed
        end local 3 // java.nio.file.Path p
        end local 2 // sun.security.krb5.internal.rcache.AuthTimeWithHash time
        end local 1 // sun.security.krb5.internal.KerberosTime currTime
        end local 0 // sun.security.krb5.internal.rcache.DflCache this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Lsun/security/krb5/internal/rcache/DflCache;
            0   19     1  currTime  Lsun/security/krb5/internal/KerberosTime;
            0   19     2      time  Lsun/security/krb5/internal/rcache/AuthTimeWithHash;
            1   19     3         p  Ljava/nio/file/Path;
            2   19     4    missed  I
            4   12     7         s  Lsun/security/krb5/internal/rcache/DflCache$Storage;
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
           4    10      11  any
           3    13      13  any
    Exceptions:
      throws java.io.IOException, sun.security.krb5.internal.KrbApErrException
    MethodParameters:
          Name  Flags
      currTime  
      time      
}
SourceFile: "DflCache.java"
NestMembers:
  sun.security.krb5.internal.rcache.DflCache$Storage
InnerClasses:
  private Storage = sun.security.krb5.internal.rcache.DflCache$Storage of sun.security.krb5.internal.rcache.DflCache