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 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield java.net.InetAddress$Cache.type:Ljava/net/InetAddress$Cache$Type;
2: aload 0
new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
putfield java.net.InetAddress$Cache.cache:Ljava/util/LinkedHashMap;
3: return
end local 1 end local 0 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 0: aload 0
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: invokestatic sun.net.InetAddressCachePolicy.get:()I
ireturn
2: StackMap locals:
StackMap stack:
invokestatic sun.net.InetAddressCachePolicy.getNegative:()I
ireturn
end local 0 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 start local 1 start local 2 0: aload 0
invokevirtual java.net.InetAddress$Cache.getPolicy:()I
istore 3
start local 3 1: iload 3
ifne 3
2: aload 0
areturn
3: StackMap locals: int
StackMap stack:
iload 3
iconst_m1
if_icmpeq 16
4: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 4
start local 4 5: invokestatic java.lang.System.currentTimeMillis:()J
lstore 5
start local 5 6: aload 0
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
start local 7 8: aload 0
getfield java.net.InetAddress$Cache.cache:Ljava/util/LinkedHashMap;
aload 7
invokevirtual java.util.LinkedHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.net.InetAddress$CacheEntry
astore 9
start local 9 9: aload 9
getfield java.net.InetAddress$CacheEntry.expiration:J
lconst_0
lcmp
iflt 12
aload 9
getfield java.net.InetAddress$CacheEntry.expiration:J
lload 5
lcmp
ifge 12
10: aload 4
aload 7
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
end local 9 end local 7 11: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
12: StackMap locals: java.net.InetAddress$Cache java.lang.String java.net.InetAddress[] int java.util.LinkedList long
StackMap stack:
aload 4
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
start local 7 14: aload 0
getfield java.net.InetAddress$Cache.cache:Ljava/util/LinkedHashMap;
aload 7
invokevirtual java.util.LinkedHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 15: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
end local 5 end local 4 16: StackMap locals: java.net.InetAddress$Cache java.lang.String java.net.InetAddress[] int
StackMap stack:
iload 3
iconst_m1
if_icmpne 19
17: ldc -1
lstore 4
start local 4 18: goto 20
end local 4 19: StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
iload 3
sipush 1000
imul
i2l
ladd
lstore 4
start local 4 20: StackMap locals: long
StackMap stack:
new java.net.InetAddress$CacheEntry
dup
aload 2
lload 4
invokespecial java.net.InetAddress$CacheEntry.<init>:([Ljava/net/InetAddress;J)V
astore 6
start local 6 21: aload 0
getfield java.net.InetAddress$Cache.cache:Ljava/util/LinkedHashMap;
aload 1
aload 6
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
22: aload 0
areturn
end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 0
invokevirtual java.net.InetAddress$Cache.getPolicy:()I
istore 2
start local 2 1: iload 2
ifne 3
2: aconst_null
areturn
3: StackMap locals: int
StackMap stack:
aload 0
getfield java.net.InetAddress$Cache.cache:Ljava/util/LinkedHashMap;
aload 1
invokevirtual java.util.LinkedHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.net.InetAddress$CacheEntry
astore 3
start local 3 4: aload 3
ifnull 9
iload 2
iconst_m1
if_icmpeq 9
5: aload 3
getfield java.net.InetAddress$CacheEntry.expiration:J
lconst_0
lcmp
iflt 9
6: aload 3
getfield java.net.InetAddress$CacheEntry.expiration:J
invokestatic java.lang.System.currentTimeMillis:()J
lcmp
ifge 9
7: aload 0
getfield java.net.InetAddress$Cache.cache:Ljava/util/LinkedHashMap;
aload 1
invokevirtual java.util.LinkedHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aconst_null
astore 3
9: StackMap locals: java.net.InetAddress$CacheEntry
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 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