final class java.net.InetAddress$Cache
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: java.net.InetAddress$Cache
  super_class: java.lang.Object
{
  private java.util.LinkedHashMap<java.lang.String, java.net.InetAddress$CacheEntry> cache;
    descriptor: Ljava/util/LinkedHashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/LinkedHashMap<Ljava/lang/String;Ljava/net/InetAddress$CacheEntry;>;

  private java.net.InetAddress$Cache$Type type;
    descriptor: Ljava/net/InetAddress$Cache$Type;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.net.InetAddress$Cache$Type);
    descriptor: (Ljava/net/InetAddress$Cache$Type;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.net.InetAddress$Cache this
        start local 1 // java.net.InetAddress$Cache$Type type
         0: .line 772
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 773
            aload 0 /* this */
            aload 1 /* type */
            putfield java.net.InetAddress$Cache.type:Ljava/net/InetAddress$Cache$Type;
         2: .line 774
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield java.net.InetAddress$Cache.cache:Ljava/util/LinkedHashMap;
         3: .line 775
            return
        end local 1 // java.net.InetAddress$Cache$Type type
        end local 0 // java.net.InetAddress$Cache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/net/InetAddress$Cache;
            0    4     1  type  Ljava/net/InetAddress$Cache$Type;
    MethodParameters:
      Name  Flags
      type  

  private int getPolicy();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.net.InetAddress$Cache this
         0: .line 778
            aload 0 /* this */
            getfield java.net.InetAddress$Cache.type:Ljava/net/InetAddress$Cache$Type;
            getstatic java.net.InetAddress$Cache$Type.Positive:Ljava/net/InetAddress$Cache$Type;
            if_acmpne 2
         1: .line 779
            invokestatic sun.net.InetAddressCachePolicy.get:()I
            ireturn
         2: .line 781
      StackMap locals:
      StackMap stack:
            invokestatic sun.net.InetAddressCachePolicy.getNegative:()I
            ireturn
        end local 0 // java.net.InetAddress$Cache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/net/InetAddress$Cache;

  public java.net.InetAddress$Cache put(java.lang.String, java.net.InetAddress[]);
    descriptor: (Ljava/lang/String;[Ljava/net/InetAddress;)Ljava/net/InetAddress$Cache;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // java.net.InetAddress$Cache this
        start local 1 // java.lang.String host
        start local 2 // java.net.InetAddress[] addresses
         0: .line 791
            aload 0 /* this */
            invokevirtual java.net.InetAddress$Cache.getPolicy:()I
            istore 3 /* policy */
        start local 3 // int policy
         1: .line 792
            iload 3 /* policy */
            ifne 3
         2: .line 793
            aload 0 /* this */
            areturn
         3: .line 798
      StackMap locals: int
      StackMap stack:
            iload 3 /* policy */
            iconst_m1
            if_icmpeq 16
         4: .line 802
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 4 /* expired */
        start local 4 // java.util.LinkedList expired
         5: .line 803
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 5 /* now */
        start local 5 // long now
         6: .line 804
            aload 0 /* this */
            getfield java.net.InetAddress$Cache.cache:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 11
      StackMap locals: java.net.InetAddress$Cache java.lang.String java.net.InetAddress[] int java.util.LinkedList long top java.util.Iterator
      StackMap stack:
         7: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* key */
        start local 7 // java.lang.String key
         8: .line 805
            aload 0 /* this */
            getfield java.net.InetAddress$Cache.cache:Ljava/util/LinkedHashMap;
            aload 7 /* key */
            invokevirtual java.util.LinkedHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.net.InetAddress$CacheEntry
            astore 9 /* entry */
        start local 9 // java.net.InetAddress$CacheEntry entry
         9: .line 807
            aload 9 /* entry */
            getfield java.net.InetAddress$CacheEntry.expiration:J
            lconst_0
            lcmp
            iflt 12
            aload 9 /* entry */
            getfield java.net.InetAddress$CacheEntry.expiration:J
            lload 5 /* now */
            lcmp
            ifge 12
        10: .line 808
            aload 4 /* expired */
            aload 7 /* key */
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.net.InetAddress$CacheEntry entry
        end local 7 // java.lang.String key
        11: .line 804
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        12: .line 814
      StackMap locals: java.net.InetAddress$Cache java.lang.String java.net.InetAddress[] int java.util.LinkedList long
      StackMap stack:
            aload 4 /* expired */
            invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 15
      StackMap locals: java.net.InetAddress$Cache java.lang.String java.net.InetAddress[] int java.util.LinkedList long top java.util.Iterator
      StackMap stack:
        13: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* key */
        start local 7 // java.lang.String key
        14: .line 815
            aload 0 /* this */
            getfield java.net.InetAddress$Cache.cache:Ljava/util/LinkedHashMap;
            aload 7 /* key */
            invokevirtual java.util.LinkedHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.lang.String key
        15: .line 814
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        end local 5 // long now
        end local 4 // java.util.LinkedList expired
        16: .line 824
      StackMap locals: java.net.InetAddress$Cache java.lang.String java.net.InetAddress[] int
      StackMap stack:
            iload 3 /* policy */
            iconst_m1
            if_icmpne 19
        17: .line 825
            ldc -1
            lstore 4 /* expiration */
        start local 4 // long expiration
        18: .line 826
            goto 20
        end local 4 // long expiration
        19: .line 827
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            iload 3 /* policy */
            sipush 1000
            imul
            i2l
            ladd
            lstore 4 /* expiration */
        start local 4 // long expiration
        20: .line 829
      StackMap locals: long
      StackMap stack:
            new java.net.InetAddress$CacheEntry
            dup
            aload 2 /* addresses */
            lload 4 /* expiration */
            invokespecial java.net.InetAddress$CacheEntry.<init>:([Ljava/net/InetAddress;J)V
            astore 6 /* entry */
        start local 6 // java.net.InetAddress$CacheEntry entry
        21: .line 830
            aload 0 /* this */
            getfield java.net.InetAddress$Cache.cache:Ljava/util/LinkedHashMap;
            aload 1 /* host */
            aload 6 /* entry */
            invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 831
            aload 0 /* this */
            areturn
        end local 6 // java.net.InetAddress$CacheEntry entry
        end local 4 // long expiration
        end local 3 // int policy
        end local 2 // java.net.InetAddress[] addresses
        end local 1 // java.lang.String host
        end local 0 // java.net.InetAddress$Cache this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   23     0        this  Ljava/net/InetAddress$Cache;
            0   23     1        host  Ljava/lang/String;
            0   23     2   addresses  [Ljava/net/InetAddress;
            1   23     3      policy  I
            5   16     4     expired  Ljava/util/LinkedList<Ljava/lang/String;>;
            6   16     5         now  J
            8   11     7         key  Ljava/lang/String;
            9   11     9       entry  Ljava/net/InetAddress$CacheEntry;
           14   15     7         key  Ljava/lang/String;
           18   19     4  expiration  J
           20   23     4  expiration  J
           21   23     6       entry  Ljava/net/InetAddress$CacheEntry;
    MethodParameters:
           Name  Flags
      host       
      addresses  

  public java.net.InetAddress$CacheEntry get(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/net/InetAddress$CacheEntry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.net.InetAddress$Cache this
        start local 1 // java.lang.String host
         0: .line 839
            aload 0 /* this */
            invokevirtual java.net.InetAddress$Cache.getPolicy:()I
            istore 2 /* policy */
        start local 2 // int policy
         1: .line 840
            iload 2 /* policy */
            ifne 3
         2: .line 841
            aconst_null
            areturn
         3: .line 843
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.net.InetAddress$Cache.cache:Ljava/util/LinkedHashMap;
            aload 1 /* host */
            invokevirtual java.util.LinkedHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.net.InetAddress$CacheEntry
            astore 3 /* entry */
        start local 3 // java.net.InetAddress$CacheEntry entry
         4: .line 846
            aload 3 /* entry */
            ifnull 9
            iload 2 /* policy */
            iconst_m1
            if_icmpeq 9
         5: .line 847
            aload 3 /* entry */
            getfield java.net.InetAddress$CacheEntry.expiration:J
            lconst_0
            lcmp
            iflt 9
         6: .line 848
            aload 3 /* entry */
            getfield java.net.InetAddress$CacheEntry.expiration:J
            invokestatic java.lang.System.currentTimeMillis:()J
            lcmp
            ifge 9
         7: .line 849
            aload 0 /* this */
            getfield java.net.InetAddress$Cache.cache:Ljava/util/LinkedHashMap;
            aload 1 /* host */
            invokevirtual java.util.LinkedHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 850
            aconst_null
            astore 3 /* entry */
         9: .line 854
      StackMap locals: java.net.InetAddress$CacheEntry
      StackMap stack:
            aload 3 /* entry */
            areturn
        end local 3 // java.net.InetAddress$CacheEntry entry
        end local 2 // int policy
        end local 1 // java.lang.String host
        end local 0 // java.net.InetAddress$Cache this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Ljava/net/InetAddress$Cache;
            0   10     1    host  Ljava/lang/String;
            1   10     2  policy  I
            4   10     3   entry  Ljava/net/InetAddress$CacheEntry;
    MethodParameters:
      Name  Flags
      host  
}
SourceFile: "InetAddress.java"
NestHost: java.net.InetAddress
InnerClasses:
  final Cache = java.net.InetAddress$Cache of java.net.InetAddress
  final Type = java.net.InetAddress$Cache$Type of java.net.InetAddress$Cache
  final CacheEntry = java.net.InetAddress$CacheEntry of java.net.InetAddress