class sun.security.ssl.StatusResponseManager$OCSPFetchCall implements java.util.concurrent.Callable<sun.security.ssl.StatusResponseManager$StatusInfo>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.security.ssl.StatusResponseManager$OCSPFetchCall
super_class: java.lang.Object
{
sun.security.ssl.StatusResponseManager$StatusInfo statInfo;
descriptor: Lsun/security/ssl/StatusResponseManager$StatusInfo;
flags: (0x0000)
sun.security.ssl.CertStatusExtension$OCSPStatusRequest ocspRequest;
descriptor: Lsun/security/ssl/CertStatusExtension$OCSPStatusRequest;
flags: (0x0000)
java.util.List<java.security.cert.Extension> extensions;
descriptor: Ljava/util/List;
flags: (0x0000)
Signature: Ljava/util/List<Ljava/security/cert/Extension;>;
java.util.List<sun.security.provider.certpath.ResponderId> responderIds;
descriptor: Ljava/util/List;
flags: (0x0000)
Signature: Ljava/util/List<Lsun/security/provider/certpath/ResponderId;>;
final sun.security.ssl.StatusResponseManager this$0;
descriptor: Lsun/security/ssl/StatusResponseManager;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(sun.security.ssl.StatusResponseManager, sun.security.ssl.StatusResponseManager$StatusInfo, sun.security.ssl.CertStatusExtension$OCSPStatusRequest);
descriptor: (Lsun/security/ssl/StatusResponseManager;Lsun/security/ssl/StatusResponseManager$StatusInfo;Lsun/security/ssl/CertStatusExtension$OCSPStatusRequest;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.this$0:Lsun/security/ssl/StatusResponseManager;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
2: ldc "Null StatusInfo not allowed"
3: invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast sun.security.ssl.StatusResponseManager$StatusInfo
putfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.statInfo:Lsun/security/ssl/StatusResponseManager$StatusInfo;
4: aload 0
aload 3
5: ldc "Null OCSPStatusRequest not allowed"
6: invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast sun.security.ssl.CertStatusExtension$OCSPStatusRequest
putfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.ocspRequest:Lsun/security/ssl/CertStatusExtension$OCSPStatusRequest;
7: aload 0
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.ocspRequest:Lsun/security/ssl/CertStatusExtension$OCSPStatusRequest;
getfield sun.security.ssl.CertStatusExtension$OCSPStatusRequest.extensions:Ljava/util/List;
putfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.extensions:Ljava/util/List;
8: aload 0
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.ocspRequest:Lsun/security/ssl/CertStatusExtension$OCSPStatusRequest;
getfield sun.security.ssl.CertStatusExtension$OCSPStatusRequest.responderIds:Ljava/util/List;
putfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.responderIds:Ljava/util/List;
9: return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/ssl/StatusResponseManager$OCSPFetchCall;
0 10 2 info Lsun/security/ssl/StatusResponseManager$StatusInfo;
0 10 3 request Lsun/security/ssl/CertStatusExtension$OCSPStatusRequest;
MethodParameters:
Name Flags
this$0 final
info
request
public sun.security.ssl.StatusResponseManager$StatusInfo call();
descriptor: ()Lsun/security/ssl/StatusResponseManager$StatusInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 5
ldc "respmgr"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 5
1: new java.lang.StringBuilder
dup
ldc "Starting fetch for SN "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.statInfo:Lsun/security/ssl/StatusResponseManager$StatusInfo;
getfield sun.security.ssl.StatusResponseManager$StatusInfo.cid:Lsun/security/provider/certpath/CertId;
invokevirtual sun.security.provider.certpath.CertId.getSerialNumber:()Ljava/math/BigInteger;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
3: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
4: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.statInfo:Lsun/security/ssl/StatusResponseManager$StatusInfo;
getfield sun.security.ssl.StatusResponseManager$StatusInfo.responder:Ljava/net/URI;
ifnonnull 11
6: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 9
ldc "respmgr"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 9
7: ldc "Null URI detected, OCSP fetch aborted"
iconst_0
anewarray java.lang.Object
8: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.statInfo:Lsun/security/ssl/StatusResponseManager$StatusInfo;
10: areturn
11: StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 14
ldc "respmgr"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 14
12: new java.lang.StringBuilder
dup
ldc "Attempting fetch from "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.statInfo:Lsun/security/ssl/StatusResponseManager$StatusInfo;
getfield sun.security.ssl.StatusResponseManager$StatusInfo.responder:Ljava/net/URI;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
13: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
14: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.this$0:Lsun/security/ssl/StatusResponseManager;
getfield sun.security.ssl.StatusResponseManager.ignoreExtensions:Z
ifne 15
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.responderIds:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 16
15: StackMap locals:
StackMap stack:
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
goto 17
StackMap locals:
StackMap stack:
16: aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.extensions:Ljava/util/List;
17: StackMap locals:
StackMap stack: java.util.List
astore 2
start local 2 18: aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.statInfo:Lsun/security/ssl/StatusResponseManager$StatusInfo;
getfield sun.security.ssl.StatusResponseManager$StatusInfo.cid:Lsun/security/provider/certpath/CertId;
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
19: aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.statInfo:Lsun/security/ssl/StatusResponseManager$StatusInfo;
getfield sun.security.ssl.StatusResponseManager$StatusInfo.responder:Ljava/net/URI;
aload 2
20: invokestatic sun.security.provider.certpath.OCSP.getOCSPBytes:(Ljava/util/List;Ljava/net/URI;Ljava/util/List;)[B
astore 3
start local 3 21: aload 3
ifnull 35
22: new sun.security.ssl.StatusResponseManager$ResponseCacheEntry
dup
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.this$0:Lsun/security/ssl/StatusResponseManager;
aload 3
23: aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.statInfo:Lsun/security/ssl/StatusResponseManager$StatusInfo;
getfield sun.security.ssl.StatusResponseManager$StatusInfo.cid:Lsun/security/provider/certpath/CertId;
24: invokespecial sun.security.ssl.StatusResponseManager$ResponseCacheEntry.<init>:(Lsun/security/ssl/StatusResponseManager;[BLsun/security/provider/certpath/CertId;)V
astore 1
start local 1 25: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 29
ldc "respmgr"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 29
26: new java.lang.StringBuilder
dup
ldc "OCSP Status: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
getfield sun.security.ssl.StatusResponseManager$ResponseCacheEntry.status:Lsun/security/provider/certpath/OCSPResponse$ResponseStatus;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
27: ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
28: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
29: StackMap locals: sun.security.ssl.StatusResponseManager$ResponseCacheEntry java.util.List byte[]
StackMap stack:
aload 1
getfield sun.security.ssl.StatusResponseManager$ResponseCacheEntry.status:Lsun/security/provider/certpath/OCSPResponse$ResponseStatus;
30: getstatic sun.security.provider.certpath.OCSPResponse$ResponseStatus.SUCCESSFUL:Lsun/security/provider/certpath/OCSPResponse$ResponseStatus;
31: if_acmpne 42
32: aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.statInfo:Lsun/security/ssl/StatusResponseManager$StatusInfo;
aload 1
putfield sun.security.ssl.StatusResponseManager$StatusInfo.responseData:Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;
33: aload 0
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.statInfo:Lsun/security/ssl/StatusResponseManager$StatusInfo;
getfield sun.security.ssl.StatusResponseManager$StatusInfo.cid:Lsun/security/provider/certpath/CertId;
aload 1
invokevirtual sun.security.ssl.StatusResponseManager$OCSPFetchCall.addToCache:(Lsun/security/provider/certpath/CertId;Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;)V
34: goto 42
end local 1 35: StackMap locals: sun.security.ssl.StatusResponseManager$OCSPFetchCall top java.util.List byte[]
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 42
ldc "respmgr"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 42
36: ldc "No data returned from OCSP Responder"
iconst_0
anewarray java.lang.Object
37: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 3 end local 2 38: goto 42
StackMap locals: sun.security.ssl.StatusResponseManager$OCSPFetchCall
StackMap stack: java.io.IOException
39: astore 1
start local 1 40: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 42
ldc "respmgr"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 42
41: ldc "Caught exception: "
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 1 42: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.statInfo:Lsun/security/ssl/StatusResponseManager$StatusInfo;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lsun/security/ssl/StatusResponseManager$OCSPFetchCall;
25 35 1 cacheEntry Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;
18 38 2 extsToSend Ljava/util/List<Ljava/security/cert/Extension;>;
21 38 3 respBytes [B
40 42 1 ioe Ljava/io/IOException;
Exception table:
from to target type
5 10 39 Class java.io.IOException
11 38 39 Class java.io.IOException
private void addToCache(sun.security.provider.certpath.CertId, sun.security.ssl.StatusResponseManager$ResponseCacheEntry);
descriptor: (Lsun/security/provider/certpath/CertId;Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getfield sun.security.ssl.StatusResponseManager$ResponseCacheEntry.nextUpdate:Ljava/util/Date;
ifnonnull 4
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.this$0:Lsun/security/ssl/StatusResponseManager;
getfield sun.security.ssl.StatusResponseManager.cacheLifetime:I
ifne 4
1: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 11
ldc "respmgr"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 11
2: ldc "Not caching this OCSP response"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
3: goto 11
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.this$0:Lsun/security/ssl/StatusResponseManager;
getfield sun.security.ssl.StatusResponseManager.responseCache:Lsun/security/util/Cache;
aload 1
aload 2
invokevirtual sun.security.util.Cache.put:(Ljava/lang/Object;Ljava/lang/Object;)V
5: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 11
ldc "respmgr"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 11
6: new java.lang.StringBuilder
dup
ldc "Added response for SN "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: aload 1
invokevirtual sun.security.provider.certpath.CertId.getSerialNumber:()Ljava/math/BigInteger;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
8: ldc " to cache"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
10: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
11: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/ssl/StatusResponseManager$OCSPFetchCall;
0 12 1 certId Lsun/security/provider/certpath/CertId;
0 12 2 entry Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;
MethodParameters:
Name Flags
certId
entry
private long getNextTaskDelay(java.util.Date);
descriptor: (Ljava/util/Date;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.this$0:Lsun/security/ssl/StatusResponseManager;
invokevirtual sun.security.ssl.StatusResponseManager.getCacheLifetime:()I
istore 4
start local 4 1: aload 1
ifnull 11
2: aload 1
invokevirtual java.util.Date.getTime:()J
3: invokestatic java.lang.System.currentTimeMillis:()J
4: lsub
5: ldc 1000
6: ldiv
lstore 5
start local 5 7: iload 4
ifle 8
lload 5
iload 4
i2l
invokestatic java.lang.Long.min:(JJ)J
goto 9
8: StackMap locals: sun.security.ssl.StatusResponseManager$OCSPFetchCall java.util.Date top top int long
StackMap stack:
lload 5
9: StackMap locals:
StackMap stack: long
lstore 2
end local 5 start local 2 10: goto 14
end local 2 11: StackMap locals:
StackMap stack:
iload 4
ifle 12
iload 4
goto 13
StackMap locals:
StackMap stack:
12: iconst_m1
StackMap locals:
StackMap stack: int
13: i2l
lstore 2
start local 2 14: StackMap locals: sun.security.ssl.StatusResponseManager$OCSPFetchCall java.util.Date long int
StackMap stack:
lload 2
lreturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/security/ssl/StatusResponseManager$OCSPFetchCall;
0 15 1 nextUpdate Ljava/util/Date;
10 11 2 delaySec J
14 15 2 delaySec J
1 15 4 lifetime I
7 10 5 nuDiffSec J
MethodParameters:
Name Flags
nextUpdate
public java.lang.Object call();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual sun.security.ssl.StatusResponseManager$OCSPFetchCall.call:()Lsun/security/ssl/StatusResponseManager$StatusInfo;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: Ljava/lang/Object;Ljava/util/concurrent/Callable<Lsun/security/ssl/StatusResponseManager$StatusInfo;>;
SourceFile: "StatusResponseManager.java"
NestHost: sun.security.ssl.StatusResponseManager
InnerClasses:
public final ResponseStatus = sun.security.provider.certpath.OCSPResponse$ResponseStatus of sun.security.provider.certpath.OCSPResponse
final OCSPStatusRequest = sun.security.ssl.CertStatusExtension$OCSPStatusRequest of sun.security.ssl.CertStatusExtension
OCSPFetchCall = sun.security.ssl.StatusResponseManager$OCSPFetchCall of sun.security.ssl.StatusResponseManager
ResponseCacheEntry = sun.security.ssl.StatusResponseManager$ResponseCacheEntry of sun.security.ssl.StatusResponseManager
StatusInfo = sun.security.ssl.StatusResponseManager$StatusInfo of sun.security.ssl.StatusResponseManager