final class jdk.internal.net.http.WindowController
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.internal.net.http.WindowController
super_class: java.lang.Object
{
static final jdk.internal.net.http.common.Logger debug;
descriptor: Ljdk/internal/net/http/common/Logger;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final int DEFAULT_INITIAL_WINDOW_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65535
private int connectionWindowSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.util.Map<java.lang.Integer, java.lang.Integer> streams;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Integer;>;
private final java.util.Map<java.lang.Integer, java.util.Map$Entry<jdk.internal.net.http.Stream<?>, java.lang.Integer>> pending;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Integer;Ljava/util/Map$Entry<Ljdk/internal/net/http/Stream<*>;Ljava/lang/Integer;>;>;
private final java.util.concurrent.locks.ReentrantLock controllerLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Ljdk/internal/net/http/WindowController;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic jdk.internal.net.http.WindowController.$assertionsDisabled:Z
3: ldc "WindowController"
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic get(Ljava/lang/String;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
java/lang/String.toString()Ljava/lang/String; (5)
()Ljava/lang/String;
getstatic jdk.internal.net.http.common.Utils.DEBUG:Z
invokestatic jdk.internal.net.http.common.Utils.getDebugLogger:(Ljava/util/function/Supplier;Z)Ljdk/internal/net/http/common/Logger;
4: putstatic jdk.internal.net.http.WindowController.debug:Ljdk/internal/net/http/common/Logger;
5: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
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.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield jdk.internal.net.http.WindowController.streams:Ljava/util/Map;
2: aload 0
3: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
putfield jdk.internal.net.http.WindowController.pending:Ljava/util/Map;
4: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
5: aload 0
ldc 65535
putfield jdk.internal.net.http.WindowController.connectionWindowSize:I
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/net/http/WindowController;
void registerStream(int, int);
descriptor: (II)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield jdk.internal.net.http.WindowController.streams:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 3
start local 3 2: aload 3
ifnull 9
3: new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "Unexpected entry ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] for streamid: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 3 6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
7: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: aload 4
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/internal/net/http/WindowController;
0 11 1 streamid I
0 11 2 initialStreamWindowSize I
2 6 3 old Ljava/lang/Integer;
Exception table:
from to target type
1 6 6 any
MethodParameters:
Name Flags
streamid
initialStreamWindowSize
void removeStream(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield jdk.internal.net.http.WindowController.streams:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 2
start local 2 2: iload 1
iconst_1
iand
iconst_1
if_icmpne 3
iconst_1
goto 4
StackMap locals: java.lang.Integer
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 3
start local 3 5: aload 2
ifnonnull 7
iload 3
ifeq 7
6: new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "Expected entry for streamid: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: int
StackMap stack:
aload 2
ifnull 12
iload 3
ifne 12
8: new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "Unexpected entry for streamid: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 9: StackMap locals: jdk.internal.net.http.WindowController int
StackMap stack: java.lang.Throwable
astore 4
10: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
11: aload 4
athrow
12: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljdk/internal/net/http/WindowController;
0 14 1 streamid I
2 9 2 old Ljava/lang/Integer;
5 9 3 isClientStream Z
Exception table:
from to target type
1 9 9 any
MethodParameters:
Name Flags
streamid
int tryAcquire(int, int, jdk.internal.net.http.Stream<?>);
descriptor: (IILjdk/internal/net/http/Stream;)I
flags: (0x0000)
Code:
stack=7, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield jdk.internal.net.http.WindowController.streams:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 4
start local 4 2: aload 4
ifnonnull 6
3: new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "Expected entry for streamid: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: java.lang.Integer
StackMap stack:
iload 1
7: aload 4
invokevirtual java.lang.Integer.intValue:()I
aload 0
getfield jdk.internal.net.http.WindowController.connectionWindowSize:I
invokestatic java.lang.Math.min:(II)I
8: invokestatic java.lang.Math.min:(II)I
istore 5
start local 5 9: iload 5
ifgt 19
10: getstatic jdk.internal.net.http.WindowController.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 15
11: getstatic jdk.internal.net.http.WindowController.debug:Ljdk/internal/net/http/common/Logger;
ldc "Stream %d requesting %d but only %d available (stream: %d, connection: %d)"
iconst_5
anewarray java.lang.Object
dup
iconst_0
12: iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 4
invokevirtual java.lang.Integer.intValue:()I
aload 0
getfield jdk.internal.net.http.WindowController.connectionWindowSize:I
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_3
13: aload 4
aastore
dup
iconst_4
aload 0
getfield jdk.internal.net.http.WindowController.connectionWindowSize:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
14: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
15: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.internal.net.http.WindowController.pending:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 3
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic java.util.Map.entry:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$Entry;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: iload 5
istore 7
17: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
18: iload 7
ireturn
19: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.WindowController.pending:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
20: aload 4
invokevirtual java.lang.Integer.intValue:()I
iload 5
isub
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 4
21: aload 0
getfield jdk.internal.net.http.WindowController.streams:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
22: aload 0
dup
getfield jdk.internal.net.http.WindowController.connectionWindowSize:I
iload 5
isub
putfield jdk.internal.net.http.WindowController.connectionWindowSize:I
23: getstatic jdk.internal.net.http.WindowController.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 28
24: getstatic jdk.internal.net.http.WindowController.debug:Ljdk/internal/net/http/common/Logger;
ldc "Stream %d amount allocated %d, now %d available (stream: %d, connection: %d)"
iconst_5
anewarray java.lang.Object
dup
iconst_0
25: iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 4
invokevirtual java.lang.Integer.intValue:()I
aload 0
getfield jdk.internal.net.http.WindowController.connectionWindowSize:I
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_3
26: aload 4
aastore
dup
iconst_4
aload 0
getfield jdk.internal.net.http.WindowController.connectionWindowSize:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
27: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
28: StackMap locals:
StackMap stack:
iload 5
istore 7
29: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
30: iload 7
ireturn
end local 5 end local 4 31: StackMap locals: jdk.internal.net.http.WindowController int int jdk.internal.net.http.Stream
StackMap stack: java.lang.Throwable
astore 6
32: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
33: aload 6
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Ljdk/internal/net/http/WindowController;
0 34 1 requestAmount I
0 34 2 streamid I
0 34 3 stream Ljdk/internal/net/http/Stream<*>;
2 31 4 streamSize Ljava/lang/Integer;
9 31 5 x I
Exception table:
from to target type
1 17 31 any
19 29 31 any
Signature: (IILjdk/internal/net/http/Stream<*>;)I
MethodParameters:
Name Flags
requestAmount
streamid
stream
boolean increaseConnectionWindow(int);
descriptor: (I)Z
flags: (0x0000)
Code:
stack=6, locals=11, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
getfield jdk.internal.net.http.WindowController.connectionWindowSize:I
istore 3
start local 3 3: iload 3
iload 1
iadd
istore 3
4: iload 3
ifge 7
5: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: iconst_0
ireturn
7: StackMap locals: java.util.List int
StackMap stack:
aload 0
iload 3
putfield jdk.internal.net.http.WindowController.connectionWindowSize:I
8: getstatic jdk.internal.net.http.WindowController.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 12
9: getstatic jdk.internal.net.http.WindowController.debug:Ljdk/internal/net/http/common/Logger;
ldc "Connection window size is now %d (amount added %d)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
10: iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
11: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
12: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.WindowController.pending:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
13: astore 4
start local 4 14: goto 29
15: StackMap locals: java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 5
start local 5 16: aload 0
getfield jdk.internal.net.http.WindowController.streams:Ljava/util/Map;
aload 5
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 6
start local 6 17: aload 6
ifnonnull 20
18: aload 4
invokeinterface java.util.Iterator.remove:()V
19: goto 29
20: StackMap locals: java.util.Map$Entry java.lang.Integer
StackMap stack:
aload 5
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 7
start local 7 21: aload 7
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 8
start local 8 22: iconst_1
istore 9
start local 9 23: iload 3
iload 9
if_icmplt 29
aload 6
invokevirtual java.lang.Integer.intValue:()I
iload 9
if_icmplt 29
24: iload 3
aload 6
invokevirtual java.lang.Integer.intValue:()I
iload 8
invokestatic java.lang.Math.min:(II)I
isub
istore 3
25: aload 4
invokeinterface java.util.Iterator.remove:()V
26: aload 2
ifnonnull 28
27: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
28: StackMap locals: java.util.Map$Entry int int
StackMap stack:
aload 2
aload 7
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast jdk.internal.net.http.Stream
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 9 end local 8 end local 7 end local 6 end local 5 29: StackMap locals: jdk.internal.net.http.WindowController int java.util.List int java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 34
iload 3
ifgt 15
end local 4 end local 3 30: goto 34
StackMap locals: jdk.internal.net.http.WindowController int java.util.List
StackMap stack: java.lang.Throwable
31: astore 10
32: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
33: aload 10
athrow
34: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
35: aload 2
ifnull 37
36: aload 2
invokedynamic accept()Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
jdk/internal/net/http/Stream.signalWindowUpdate()V (5)
(Ljdk/internal/net/http/Stream;)V
invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
37: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Ljdk/internal/net/http/WindowController;
0 38 1 amount I
1 38 2 candidates Ljava/util/List<Ljdk/internal/net/http/Stream<*>;>;
3 30 3 size I
14 30 4 iter Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/Integer;Ljava/util/Map$Entry<Ljdk/internal/net/http/Stream<*>;Ljava/lang/Integer;>;>;>;
16 29 5 item Ljava/util/Map$Entry<Ljava/lang/Integer;Ljava/util/Map$Entry<Ljdk/internal/net/http/Stream<*>;Ljava/lang/Integer;>;>;
17 29 6 streamSize Ljava/lang/Integer;
21 29 7 e Ljava/util/Map$Entry<Ljdk/internal/net/http/Stream<*>;Ljava/lang/Integer;>;
22 29 8 requestedAmount I
23 29 9 minAmount I
Exception table:
from to target type
2 5 31 any
7 31 31 any
MethodParameters:
Name Flags
amount
boolean increaseStreamWindow(int, int);
descriptor: (II)Z
flags: (0x0000)
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
getfield jdk.internal.net.http.WindowController.streams:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 4
start local 4 3: aload 4
ifnonnull 9
4: getstatic jdk.internal.net.http.WindowController.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 30
5: getstatic jdk.internal.net.http.WindowController.debug:Ljdk/internal/net/http/common/Logger;
ldc "WARNING: No entry found for streamid: %s. May be cancelled?"
iconst_1
anewarray java.lang.Object
dup
iconst_0
6: iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
7: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
8: goto 30
9: StackMap locals: jdk.internal.net.http.Stream java.lang.Integer
StackMap stack:
aload 4
invokevirtual java.lang.Integer.intValue:()I
istore 5
start local 5 10: iload 5
iload 1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 4
11: aload 4
invokevirtual java.lang.Integer.intValue:()I
iload 5
if_icmpge 14
12: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
13: iconst_0
ireturn
14: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.internal.net.http.WindowController.streams:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: getstatic jdk.internal.net.http.WindowController.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 19
16: getstatic jdk.internal.net.http.WindowController.debug:Ljdk/internal/net/http/common/Logger;
ldc "Stream %s window size is now %s (amount added %d)"
iconst_3
anewarray java.lang.Object
dup
iconst_0
17: iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 4
aastore
dup
iconst_2
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
18: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
19: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.WindowController.pending:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 6
start local 6 20: aload 6
ifnull 30
21: iconst_1
istore 7
start local 7 22: aload 4
invokevirtual java.lang.Integer.intValue:()I
iload 7
if_icmplt 30
23: aload 0
getfield jdk.internal.net.http.WindowController.connectionWindowSize:I
iload 7
if_icmplt 30
24: aload 0
getfield jdk.internal.net.http.WindowController.pending:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
25: aload 6
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast jdk.internal.net.http.Stream
astore 3
end local 7 end local 6 end local 5 end local 4 26: goto 30
StackMap locals: jdk.internal.net.http.WindowController int int jdk.internal.net.http.Stream
StackMap stack: java.lang.Throwable
27: astore 8
28: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
29: aload 8
athrow
30: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
31: aload 3
ifnull 33
32: aload 3
invokevirtual jdk.internal.net.http.Stream.signalWindowUpdate:()V
33: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Ljdk/internal/net/http/WindowController;
0 34 1 amount I
0 34 2 streamid I
1 34 3 s Ljdk/internal/net/http/Stream<*>;
3 26 4 size Ljava/lang/Integer;
10 26 5 prev I
20 26 6 p Ljava/util/Map$Entry<Ljdk/internal/net/http/Stream<*>;Ljava/lang/Integer;>;
22 26 7 minAmount I
Exception table:
from to target type
2 12 27 any
14 27 27 any
MethodParameters:
Name Flags
amount
streamid
void adjustActiveStreams(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: getstatic jdk.internal.net.http.WindowController.$assertionsDisabled:Z
ifne 1
iload 1
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
getfield jdk.internal.net.http.WindowController.streams:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 13
StackMap locals: jdk.internal.net.http.WindowController int top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 2
start local 2 4: aload 2
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 4
start local 4 5: iload 4
ifeq 13
iload 4
iconst_2
irem
ifeq 13
6: aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
astore 5
start local 5 7: aload 5
invokevirtual java.lang.Integer.intValue:()I
iload 1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 5
8: aload 0
getfield jdk.internal.net.http.WindowController.streams:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: getstatic jdk.internal.net.http.WindowController.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 13
10: getstatic jdk.internal.net.http.WindowController.debug:Ljdk/internal/net/http/common/Logger;
ldc "Stream %s window size is now %s (adjusting amount %d)"
iconst_3
anewarray java.lang.Object
dup
iconst_0
11: iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 5
aastore
dup
iconst_2
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
12: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 5 end local 4 end local 2 13: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
14: goto 18
StackMap locals: jdk.internal.net.http.WindowController int
StackMap stack: java.lang.Throwable
15: astore 6
16: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
17: aload 6
athrow
18: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
19: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljdk/internal/net/http/WindowController;
0 20 1 adjustAmount I
4 13 2 entry Ljava/util/Map$Entry<Ljava/lang/Integer;Ljava/lang/Integer;>;
5 13 4 streamid I
7 13 5 size Ljava/lang/Integer;
Exception table:
from to target type
2 15 15 any
MethodParameters:
Name Flags
adjustAmount
int connectionWindowSize();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield jdk.internal.net.http.WindowController.connectionWindowSize:I
istore 2
2: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: iload 2
ireturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/net/http/WindowController;
Exception table:
from to target type
1 2 4 any
int streamWindowSize(int);
descriptor: (I)I
flags: (0x0000)
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield jdk.internal.net.http.WindowController.streams:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 2
start local 2 2: aload 2
ifnonnull 4
3: new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "Expected entry for streamid: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.lang.Integer
StackMap stack:
aload 2
invokevirtual java.lang.Integer.intValue:()I
istore 4
5: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: iload 4
ireturn
end local 2 7: StackMap locals: jdk.internal.net.http.WindowController int
StackMap stack: java.lang.Throwable
astore 3
8: aload 0
getfield jdk.internal.net.http.WindowController.controllerLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: aload 3
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/internal/net/http/WindowController;
0 10 1 streamid I
2 7 2 size Ljava/lang/Integer;
Exception table:
from to target type
1 5 7 any
MethodParameters:
Name Flags
streamid
}
SourceFile: "WindowController.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map