final class jdk.incubator.http.ConnectionPool$ExpiryList
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.incubator.http.ConnectionPool$ExpiryList
super_class: java.lang.Object
{
private final java.util.LinkedList<jdk.incubator.http.ConnectionPool$ExpiryEntry> list;
descriptor: Ljava/util/LinkedList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/LinkedList<Ljdk/incubator/http/ConnectionPool$ExpiryEntry;>;
private volatile boolean mayContainEntries;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield jdk.incubator.http.ConnectionPool$ExpiryList.list:Ljava/util/LinkedList;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/ConnectionPool$ExpiryList;
boolean purgeMaybeRequired();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.ConnectionPool$ExpiryList.mayContainEntries:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/ConnectionPool$ExpiryList;
java.util.Optional<java.time.Instant> nextExpiryDeadline();
descriptor: ()Ljava/util/Optional;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.ConnectionPool$ExpiryList.list:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 1
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.ConnectionPool$ExpiryList.list:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
checkcast jdk.incubator.http.ConnectionPool$ExpiryEntry
getfield jdk.incubator.http.ConnectionPool$ExpiryEntry.expiry:Ljava/time/Instant;
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/ConnectionPool$ExpiryList;
Signature: ()Ljava/util/Optional<Ljava/time/Instant;>;
void add(jdk.incubator.http.HttpConnection);
descriptor: (Ljdk/incubator/http/HttpConnection;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic java.time.Instant.now:()Ljava/time/Instant;
getstatic jdk.incubator.http.ConnectionPool.KEEP_ALIVE:J
invokevirtual jdk.incubator.http.ConnectionPool$ExpiryList.add:(Ljdk/incubator/http/HttpConnection;Ljava/time/Instant;J)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/ConnectionPool$ExpiryList;
0 2 1 conn Ljdk/incubator/http/HttpConnection;
MethodParameters:
Name Flags
conn
void add(jdk.incubator.http.HttpConnection, java.time.Instant, long);
descriptor: (Ljdk/incubator/http/HttpConnection;Ljava/time/Instant;J)V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
getstatic java.time.temporal.ChronoUnit.SECONDS:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.Instant.truncatedTo:(Ljava/time/temporal/TemporalUnit;)Ljava/time/Instant;
1: lload 3
getstatic java.time.temporal.ChronoUnit.SECONDS:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.Instant.plus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/Instant;
2: astore 5
start local 5 3: aload 0
getfield jdk.incubator.http.ConnectionPool$ExpiryList.list:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.listIterator:()Ljava/util/ListIterator;
astore 6
start local 6 4: goto 11
5: StackMap locals: java.time.Instant java.util.ListIterator
StackMap stack:
aload 6
invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
checkcast jdk.incubator.http.ConnectionPool$ExpiryEntry
astore 7
start local 7 6: aload 5
aload 7
getfield jdk.incubator.http.ConnectionPool$ExpiryEntry.expiry:Ljava/time/Instant;
invokevirtual java.time.Instant.isAfter:(Ljava/time/Instant;)Z
ifeq 11
7: aload 6
invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
pop
8: aload 6
new jdk.incubator.http.ConnectionPool$ExpiryEntry
dup
aload 1
aload 5
invokespecial jdk.incubator.http.ConnectionPool$ExpiryEntry.<init>:(Ljdk/incubator/http/HttpConnection;Ljava/time/Instant;)V
invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
9: aload 0
iconst_1
putfield jdk.incubator.http.ConnectionPool$ExpiryList.mayContainEntries:Z
10: return
end local 7 11: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.ListIterator.hasNext:()Z
ifne 5
12: aload 0
getfield jdk.incubator.http.ConnectionPool$ExpiryList.list:Ljava/util/LinkedList;
new jdk.incubator.http.ConnectionPool$ExpiryEntry
dup
aload 1
aload 5
invokespecial jdk.incubator.http.ConnectionPool$ExpiryEntry.<init>:(Ljdk/incubator/http/HttpConnection;Ljava/time/Instant;)V
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
13: aload 0
iconst_1
putfield jdk.incubator.http.ConnectionPool$ExpiryList.mayContainEntries:Z
14: return
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljdk/incubator/http/ConnectionPool$ExpiryList;
0 15 1 conn Ljdk/incubator/http/HttpConnection;
0 15 2 now Ljava/time/Instant;
0 15 3 keepAlive J
3 15 5 then Ljava/time/Instant;
4 15 6 li Ljava/util/ListIterator<Ljdk/incubator/http/ConnectionPool$ExpiryEntry;>;
6 11 7 entry Ljdk/incubator/http/ConnectionPool$ExpiryEntry;
MethodParameters:
Name Flags
conn
now
keepAlive
void remove(jdk.incubator.http.HttpConnection);
descriptor: (Ljdk/incubator/http/HttpConnection;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 0
getfield jdk.incubator.http.ConnectionPool$ExpiryList.list:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 2
StackMap locals:
StackMap stack:
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.ConnectionPool$ExpiryList.list:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.listIterator:()Ljava/util/ListIterator;
astore 2
start local 2 3: goto 11
4: StackMap locals: java.util.ListIterator
StackMap stack:
aload 2
invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
checkcast jdk.incubator.http.ConnectionPool$ExpiryEntry
astore 3
start local 3 5: aload 3
getfield jdk.incubator.http.ConnectionPool$ExpiryEntry.connection:Ljdk/incubator/http/HttpConnection;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 11
6: aload 2
invokeinterface java.util.ListIterator.remove:()V
7: aload 0
aload 0
getfield jdk.incubator.http.ConnectionPool$ExpiryList.list:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 8
iconst_0
goto 9
StackMap locals: jdk.incubator.http.ConnectionPool$ExpiryList jdk.incubator.http.HttpConnection java.util.ListIterator jdk.incubator.http.ConnectionPool$ExpiryEntry
StackMap stack: jdk.incubator.http.ConnectionPool$ExpiryList
8: iconst_1
StackMap locals: jdk.incubator.http.ConnectionPool$ExpiryList jdk.incubator.http.HttpConnection java.util.ListIterator jdk.incubator.http.ConnectionPool$ExpiryEntry
StackMap stack: jdk.incubator.http.ConnectionPool$ExpiryList int
9: putfield jdk.incubator.http.ConnectionPool$ExpiryList.mayContainEntries:Z
10: return
end local 3 11: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.ListIterator.hasNext:()Z
ifne 4
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/incubator/http/ConnectionPool$ExpiryList;
0 13 1 c Ljdk/incubator/http/HttpConnection;
3 13 2 li Ljava/util/ListIterator<Ljdk/incubator/http/ConnectionPool$ExpiryEntry;>;
5 11 3 e Ljdk/incubator/http/ConnectionPool$ExpiryEntry;
MethodParameters:
Name Flags
c
java.util.List<jdk.incubator.http.HttpConnection> purgeUntil(java.time.Instant);
descriptor: (Ljava/time/Instant;)Ljava/util/List;
flags: (0x0000)
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.ConnectionPool$ExpiryList.list:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 1
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
1: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 0
getfield jdk.incubator.http.ConnectionPool$ExpiryList.list:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.descendingIterator:()Ljava/util/Iterator;
astore 3
start local 3 3: goto 9
4: StackMap locals: java.util.List java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.incubator.http.ConnectionPool$ExpiryEntry
astore 4
start local 4 5: aload 4
getfield jdk.incubator.http.ConnectionPool$ExpiryEntry.expiry:Ljava/time/Instant;
aload 1
invokevirtual java.time.Instant.isAfter:(Ljava/time/Instant;)Z
ifne 10
6: aload 3
invokeinterface java.util.Iterator.remove:()V
7: aload 4
getfield jdk.incubator.http.ConnectionPool$ExpiryEntry.connection:Ljdk/incubator/http/HttpConnection;
astore 5
start local 5 8: aload 2
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 4 9: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
10: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.incubator.http.ConnectionPool$ExpiryList.list:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 11
iconst_0
goto 12
StackMap locals:
StackMap stack: jdk.incubator.http.ConnectionPool$ExpiryList
11: iconst_1
StackMap locals: jdk.incubator.http.ConnectionPool$ExpiryList java.time.Instant java.util.List java.util.Iterator
StackMap stack: jdk.incubator.http.ConnectionPool$ExpiryList int
12: putfield jdk.incubator.http.ConnectionPool$ExpiryList.mayContainEntries:Z
13: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljdk/incubator/http/ConnectionPool$ExpiryList;
0 14 1 now Ljava/time/Instant;
2 14 2 closelist Ljava/util/List<Ljdk/incubator/http/HttpConnection;>;
3 14 3 li Ljava/util/Iterator<Ljdk/incubator/http/ConnectionPool$ExpiryEntry;>;
5 9 4 entry Ljdk/incubator/http/ConnectionPool$ExpiryEntry;
8 9 5 c Ljdk/incubator/http/HttpConnection;
Signature: (Ljava/time/Instant;)Ljava/util/List<Ljdk/incubator/http/HttpConnection;>;
MethodParameters:
Name Flags
now
java.util.stream.Stream<jdk.incubator.http.ConnectionPool$ExpiryEntry> stream();
descriptor: ()Ljava/util/stream/Stream;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.ConnectionPool$ExpiryList.list:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.stream:()Ljava/util/stream/Stream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/ConnectionPool$ExpiryList;
Signature: ()Ljava/util/stream/Stream<Ljdk/incubator/http/ConnectionPool$ExpiryEntry;>;
void clear();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.ConnectionPool$ExpiryList.list:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.clear:()V
1: aload 0
iconst_0
putfield jdk.incubator.http.ConnectionPool$ExpiryList.mayContainEntries:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/ConnectionPool$ExpiryList;
}
SourceFile: "ConnectionPool.java"
NestHost: jdk.incubator.http.ConnectionPool
InnerClasses:
final ExpiryEntry = jdk.incubator.http.ConnectionPool$ExpiryEntry of jdk.incubator.http.ConnectionPool
private final ExpiryList = jdk.incubator.http.ConnectionPool$ExpiryList of jdk.incubator.http.ConnectionPool