final class jdk.internal.net.http.Http1Response$ClientRefCountTracker
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.internal.net.http.Http1Response$ClientRefCountTracker
super_class: java.lang.Object
{
final jdk.internal.net.http.HttpClientImpl client;
descriptor: Ljdk/internal/net/http/HttpClientImpl;
flags: (0x0010) ACC_FINAL
byte state;
descriptor: B
flags: (0x0000)
final jdk.internal.net.http.Http1Response this$0;
descriptor: Ljdk/internal/net/http/Http1Response;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
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=1, locals=0, args_size=0
0: ldc Ljdk/internal/net/http/Http1Response;
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.Http1Response$ClientRefCountTracker.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(jdk.internal.net.http.Http1Response);
descriptor: (Ljdk/internal/net/http/Http1Response;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.this$0:Ljdk/internal/net/http/Http1Response;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
getfield jdk.internal.net.http.Http1Response.connection:Ljdk/internal/net/http/HttpConnection;
invokevirtual jdk.internal.net.http.HttpConnection.client:()Ljdk/internal/net/http/HttpClientImpl;
putfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.client:Ljdk/internal/net/http/HttpClientImpl;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/Http1Response$ClientRefCountTracker;
MethodParameters:
Name Flags
this$0 final
public synchronized void acquire();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=7, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.state:B
ifne 6
1: aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.this$0:Ljdk/internal/net/http/Http1Response;
getfield jdk.internal.net.http.Http1Response.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 3
2: aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.this$0:Ljdk/internal/net/http/Http1Response;
getfield jdk.internal.net.http.Http1Response.debug:Ljdk/internal/net/http/common/Logger;
ldc "Operation started: incrementing ref count for %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.client:Ljdk/internal/net/http/HttpClientImpl;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.client:Ljdk/internal/net/http/HttpClientImpl;
invokevirtual jdk.internal.net.http.HttpClientImpl.reference:()J
pop2
4: aload 0
iconst_1
putfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.state:B
5: goto 13
6: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.this$0:Ljdk/internal/net/http/Http1Response;
getfield jdk.internal.net.http.Http1Response.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 12
7: aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.this$0:Ljdk/internal/net/http/Http1Response;
getfield jdk.internal.net.http.Http1Response.debug:Ljdk/internal/net/http/common/Logger;
ldc "Operation ref count for %s is already %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
8: aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.client:Ljdk/internal/net/http/HttpClientImpl;
aastore
dup
iconst_1
aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.state:B
iconst_2
iand
iconst_2
if_icmpne 9
ldc "released."
goto 10
StackMap locals: jdk.internal.net.http.Http1Response$ClientRefCountTracker
StackMap stack: jdk.internal.net.http.common.Logger java.lang.String java.lang.Object[] java.lang.Object[] int
9: ldc "incremented!"
StackMap locals: jdk.internal.net.http.Http1Response$ClientRefCountTracker
StackMap stack: jdk.internal.net.http.common.Logger java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
10: aastore
11: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
12: StackMap locals:
StackMap stack:
getstatic jdk.internal.net.http.Http1Response$ClientRefCountTracker.$assertionsDisabled:Z
ifne 13
aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.state:B
iconst_1
iand
ifeq 13
new java.lang.AssertionError
dup
ldc "reference count already incremented"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
13: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljdk/internal/net/http/Http1Response$ClientRefCountTracker;
public synchronized void tryRelease();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.state:B
iconst_1
if_icmpne 5
1: aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.this$0:Ljdk/internal/net/http/Http1Response;
getfield jdk.internal.net.http.Http1Response.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 3
2: aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.this$0:Ljdk/internal/net/http/Http1Response;
getfield jdk.internal.net.http.Http1Response.debug:Ljdk/internal/net/http/common/Logger;
ldc "Operation finished: decrementing ref count for %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.client:Ljdk/internal/net/http/HttpClientImpl;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.client:Ljdk/internal/net/http/HttpClientImpl;
invokevirtual jdk.internal.net.http.HttpClientImpl.unreference:()J
pop2
4: goto 12
StackMap locals:
StackMap stack:
5: aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.state:B
ifne 9
6: aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.this$0:Ljdk/internal/net/http/Http1Response;
getfield jdk.internal.net.http.Http1Response.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 12
7: aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.this$0:Ljdk/internal/net/http/Http1Response;
getfield jdk.internal.net.http.Http1Response.debug:Ljdk/internal/net/http/common/Logger;
ldc "Operation finished: releasing ref count for %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.client:Ljdk/internal/net/http/HttpClientImpl;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
8: goto 12
StackMap locals:
StackMap stack:
9: aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.state:B
iconst_2
iand
iconst_2
if_icmpne 12
10: aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.this$0:Ljdk/internal/net/http/Http1Response;
getfield jdk.internal.net.http.Http1Response.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 12
11: aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.this$0:Ljdk/internal/net/http/Http1Response;
getfield jdk.internal.net.http.Http1Response.debug:Ljdk/internal/net/http/common/Logger;
ldc "ref count for %s already released"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.client:Ljdk/internal/net/http/HttpClientImpl;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
12: StackMap locals:
StackMap stack:
aload 0
dup
getfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.state:B
iconst_2
ior
i2b
putfield jdk.internal.net.http.Http1Response$ClientRefCountTracker.state:B
13: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljdk/internal/net/http/Http1Response$ClientRefCountTracker;
}
SourceFile: "Http1Response.java"
NestHost: jdk.internal.net.http.Http1Response
InnerClasses:
private final ClientRefCountTracker = jdk.internal.net.http.Http1Response$ClientRefCountTracker of jdk.internal.net.http.Http1Response