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.OCSPStatusRequest ocspRequest;
descriptor: Lsun/security/ssl/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.OCSPStatusRequest);
descriptor: (Lsun/security/ssl/StatusResponseManager;Lsun/security/ssl/StatusResponseManager$StatusInfo;Lsun/security/ssl/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.OCSPStatusRequest
putfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.ocspRequest:Lsun/security/ssl/OCSPStatusRequest;
7: aload 0
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.ocspRequest:Lsun/security/ssl/OCSPStatusRequest;
invokevirtual sun.security.ssl.OCSPStatusRequest.getExtensions:()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/OCSPStatusRequest;
invokevirtual sun.security.ssl.OCSPStatusRequest.getResponderIds:()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/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=4, locals=4, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "Starting fetch for SN "
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.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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
1: 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 5
2: ldc "Null URI detected, OCSP fetch aborted."
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
3: aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.statInfo:Lsun/security/ssl/StatusResponseManager$StatusInfo;
4: areturn
5: StackMap locals:
StackMap stack:
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;
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
6: aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.this$0:Lsun/security/ssl/StatusResponseManager;
getfield sun.security.ssl.StatusResponseManager.ignoreExtensions:Z
ifne 7
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.responderIds:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 8
7: StackMap locals:
StackMap stack:
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
goto 9
StackMap locals:
StackMap stack:
8: aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.extensions:Ljava/util/List;
9: StackMap locals:
StackMap stack: java.util.List
astore 2
start local 2 10: 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;
11: 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
12: invokestatic sun.security.provider.certpath.OCSP.getOCSPBytes:(Ljava/util/List;Ljava/net/URI;Ljava/util/List;)[B
astore 3
start local 3 13: aload 3
ifnull 26
14: new sun.security.ssl.StatusResponseManager$ResponseCacheEntry
dup
aload 3
15: 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;
16: invokespecial sun.security.ssl.StatusResponseManager$ResponseCacheEntry.<init>:([BLsun/security/provider/certpath/CertId;)V
astore 1
start local 1 17: 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;
18: 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;
19: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
20: aload 1
getfield sun.security.ssl.StatusResponseManager$ResponseCacheEntry.status:Lsun/security/provider/certpath/OCSPResponse$ResponseStatus;
21: getstatic sun.security.provider.certpath.OCSPResponse$ResponseStatus.SUCCESSFUL:Lsun/security/provider/certpath/OCSPResponse$ResponseStatus;
22: if_acmpne 30
23: 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;
24: 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
25: goto 30
end local 1 26: StackMap locals: sun.security.ssl.StatusResponseManager$OCSPFetchCall top java.util.List byte[]
StackMap stack:
ldc "No data returned from OCSP Responder"
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
end local 3 end local 2 27: goto 30
StackMap locals: sun.security.ssl.StatusResponseManager$OCSPFetchCall
StackMap stack: java.io.IOException
28: astore 1
start local 1 29: new java.lang.StringBuilder
dup
ldc "Caught exception: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
end local 1 30: 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 31 0 this Lsun/security/ssl/StatusResponseManager$OCSPFetchCall;
17 26 1 cacheEntry Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;
10 27 2 extsToSend Ljava/util/List<Ljava/security/cert/Extension;>;
13 27 3 respBytes [B
29 30 1 ioe Ljava/io/IOException;
Exception table:
from to target type
1 4 28 Class java.io.IOException
5 27 28 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 3
aload 0
getfield sun.security.ssl.StatusResponseManager$OCSPFetchCall.this$0:Lsun/security/ssl/StatusResponseManager;
getfield sun.security.ssl.StatusResponseManager.cacheLifetime:I
ifne 3
1: ldc "Not caching this OCSP response"
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
2: goto 7
3: 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
4: new java.lang.StringBuilder
dup
ldc "Added response for SN "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual sun.security.provider.certpath.CertId.getSerialNumber:()Ljava/math/BigInteger;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
5: ldc " to cache"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/StatusResponseManager$OCSPFetchCall;
0 8 1 certId Lsun/security/provider/certpath/CertId;
0 8 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
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