final class sun.security.ssl.StatusResponseManager
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.StatusResponseManager
super_class: java.lang.Object
{
private static final int DEFAULT_CORE_THREADS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int DEFAULT_CACHE_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 256
private static final int DEFAULT_CACHE_LIFETIME;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3600
private static final sun.security.ssl.Debug debug;
descriptor: Lsun/security/ssl/Debug;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.concurrent.ScheduledThreadPoolExecutor threadMgr;
descriptor: Ljava/util/concurrent/ScheduledThreadPoolExecutor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.security.util.Cache<sun.security.provider.certpath.CertId, sun.security.ssl.StatusResponseManager$ResponseCacheEntry> responseCache;
descriptor: Lsun/security/util/Cache;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lsun/security/util/Cache<Lsun/security/provider/certpath/CertId;Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;>;
private final java.net.URI defaultResponder;
descriptor: Ljava/net/URI;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean respOverride;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int cacheCapacity;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int cacheLifetime;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean ignoreExtensions;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "ssl"
invokestatic sun.security.ssl.Debug.getInstance:(Ljava/lang/String;)Lsun/security/ssl/Debug;
putstatic sun.security.ssl.StatusResponseManager.debug:Lsun/security/ssl/Debug;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=7, locals=5, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: new sun.security.action.GetIntegerAction
dup
ldc "jdk.tls.stapling.cacheSize"
2: sipush 256
3: invokespecial sun.security.action.GetIntegerAction.<init>:(Ljava/lang/String;I)V
4: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 1
start local 1 5: aload 0
iload 1
ifle 6
iload 1
goto 7
StackMap locals: sun.security.ssl.StatusResponseManager int
StackMap stack: sun.security.ssl.StatusResponseManager
6: iconst_0
StackMap locals: sun.security.ssl.StatusResponseManager int
StackMap stack: sun.security.ssl.StatusResponseManager int
7: putfield sun.security.ssl.StatusResponseManager.cacheCapacity:I
8: new sun.security.action.GetIntegerAction
dup
ldc "jdk.tls.stapling.cacheLifetime"
9: sipush 3600
10: invokespecial sun.security.action.GetIntegerAction.<init>:(Ljava/lang/String;I)V
11: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 2
start local 2 12: aload 0
iload 2
ifle 13
iload 2
goto 14
StackMap locals: sun.security.ssl.StatusResponseManager int int
StackMap stack: sun.security.ssl.StatusResponseManager
13: iconst_0
StackMap locals: sun.security.ssl.StatusResponseManager int int
StackMap stack: sun.security.ssl.StatusResponseManager int
14: putfield sun.security.ssl.StatusResponseManager.cacheLifetime:I
15: ldc "jdk.tls.stapling.responderURI"
invokestatic sun.security.action.GetPropertyAction.privilegedGetProperty:(Ljava/lang/String;)Ljava/lang/String;
16: astore 3
start local 3 17: aload 3
ifnull 19
aload 3
invokevirtual java.lang.String.isEmpty:()Z
ifne 19
18: new java.net.URI
dup
aload 3
invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
goto 20
StackMap locals: java.lang.String
StackMap stack:
19: aconst_null
20: StackMap locals:
StackMap stack: java.net.URI
astore 4
start local 4 21: goto 24
end local 4 StackMap locals:
StackMap stack: java.net.URISyntaxException
22: pop
23: aconst_null
astore 4
start local 4 24: StackMap locals: java.net.URI
StackMap stack:
aload 0
aload 4
putfield sun.security.ssl.StatusResponseManager.defaultResponder:Ljava/net/URI;
25: aload 0
26: new sun.security.action.GetBooleanAction
dup
ldc "jdk.tls.stapling.responderOverride"
invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
27: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield sun.security.ssl.StatusResponseManager.respOverride:Z
28: aload 0
29: new sun.security.action.GetBooleanAction
dup
ldc "jdk.tls.stapling.ignoreExtensions"
invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
30: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield sun.security.ssl.StatusResponseManager.ignoreExtensions:Z
31: aload 0
new java.util.concurrent.ScheduledThreadPoolExecutor
dup
bipush 8
32: new sun.security.ssl.StatusResponseManager$1
dup
aload 0
invokespecial sun.security.ssl.StatusResponseManager$1.<init>:(Lsun/security/ssl/StatusResponseManager;)V
33: new java.util.concurrent.ThreadPoolExecutor$DiscardPolicy
dup
invokespecial java.util.concurrent.ThreadPoolExecutor$DiscardPolicy.<init>:()V
invokespecial java.util.concurrent.ScheduledThreadPoolExecutor.<init>:(ILjava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V
34: putfield sun.security.ssl.StatusResponseManager.threadMgr:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
35: aload 0
getfield sun.security.ssl.StatusResponseManager.threadMgr:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
iconst_0
invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.setExecuteExistingDelayedTasksAfterShutdownPolicy:(Z)V
36: aload 0
getfield sun.security.ssl.StatusResponseManager.threadMgr:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
iconst_0
invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.setContinueExistingPeriodicTasksAfterShutdownPolicy:(Z)V
37: aload 0
getfield sun.security.ssl.StatusResponseManager.threadMgr:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
ldc 5000
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.setKeepAliveTime:(JLjava/util/concurrent/TimeUnit;)V
38: aload 0
getfield sun.security.ssl.StatusResponseManager.threadMgr:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
iconst_1
invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.allowCoreThreadTimeOut:(Z)V
39: aload 0
aload 0
getfield sun.security.ssl.StatusResponseManager.cacheCapacity:I
aload 0
getfield sun.security.ssl.StatusResponseManager.cacheLifetime:I
invokestatic sun.security.util.Cache.newSoftMemoryCache:(II)Lsun/security/util/Cache;
putfield sun.security.ssl.StatusResponseManager.responseCache:Lsun/security/util/Cache;
40: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lsun/security/ssl/StatusResponseManager;
5 41 1 cap I
12 41 2 life I
17 41 3 uriStr Ljava/lang/String;
21 22 4 tmpURI Ljava/net/URI;
24 41 4 tmpURI Ljava/net/URI;
Exception table:
from to target type
17 21 22 Class java.net.URISyntaxException
int getCacheLifetime();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.StatusResponseManager.cacheLifetime:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/StatusResponseManager;
int getCacheCapacity();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.StatusResponseManager.cacheCapacity:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/StatusResponseManager;
java.net.URI getDefaultResponder();
descriptor: ()Ljava/net/URI;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.StatusResponseManager.defaultResponder:Ljava/net/URI;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/StatusResponseManager;
boolean getURIOverride();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.StatusResponseManager.respOverride:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/StatusResponseManager;
boolean getIgnoreExtensions();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.StatusResponseManager.ignoreExtensions:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/StatusResponseManager;
void clear();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "Clearing response cache"
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
1: aload 0
getfield sun.security.ssl.StatusResponseManager.responseCache:Lsun/security/util/Cache;
invokevirtual sun.security.util.Cache.clear:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/StatusResponseManager;
int size();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.StatusResponseManager.responseCache:Lsun/security/util/Cache;
invokevirtual sun.security.util.Cache.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/StatusResponseManager;
java.net.URI getURI(java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;)Ljava/net/URI;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
2: getstatic sun.security.x509.PKIXExtensions.OCSPNoCheck_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
3: invokevirtual java.security.cert.X509Certificate.getExtensionValue:(Ljava/lang/String;)[B
ifnull 6
4: ldc "OCSP NoCheck extension found. OCSP will be skipped"
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
5: aconst_null
areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.StatusResponseManager.defaultResponder:Ljava/net/URI;
ifnull 9
aload 0
getfield sun.security.ssl.StatusResponseManager.respOverride:Z
ifeq 9
7: new java.lang.StringBuilder
dup
ldc "Responder override: URI is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.StatusResponseManager.defaultResponder: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
8: aload 0
getfield sun.security.ssl.StatusResponseManager.defaultResponder:Ljava/net/URI;
areturn
9: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.security.provider.certpath.OCSP.getResponderURI:(Ljava/security/cert/X509Certificate;)Ljava/net/URI;
astore 2
start local 2 10: aload 2
ifnull 11
aload 2
goto 12
StackMap locals: java.net.URI
StackMap stack:
11: aload 0
getfield sun.security.ssl.StatusResponseManager.defaultResponder:Ljava/net/URI;
StackMap locals:
StackMap stack: java.net.URI
12: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/ssl/StatusResponseManager;
0 13 1 cert Ljava/security/cert/X509Certificate;
10 13 2 certURI Ljava/net/URI;
MethodParameters:
Name Flags
cert
void shutdown();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "Shutting down "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.StatusResponseManager.threadMgr:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.getActiveCount:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
1: ldc " active threads"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
3: aload 0
getfield sun.security.ssl.StatusResponseManager.threadMgr:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.shutdown:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/ssl/StatusResponseManager;
java.util.Map<java.security.cert.X509Certificate, byte[]> get(sun.security.ssl.StatusRequestType, sun.security.ssl.StatusRequest, java.security.cert.X509Certificate[], long, java.util.concurrent.TimeUnit);
descriptor: (Lsun/security/ssl/StatusRequestType;Lsun/security/ssl/StatusRequest;[Ljava/security/cert/X509Certificate;JLjava/util/concurrent/TimeUnit;)Ljava/util/Map;
flags: (0x0000)
Code:
stack=7, locals=14, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 6 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 7
start local 7 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 8
start local 8 2: new java.lang.StringBuilder
dup
ldc "Beginning check: Type = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ", Chain length = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: aload 3
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
4: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
5: aload 3
arraylength
iconst_2
if_icmpge 7
6: invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
areturn
7: StackMap locals: java.util.Map java.util.List
StackMap stack:
aload 1
getstatic sun.security.ssl.StatusRequestType.OCSP:Lsun/security/ssl/StatusRequestType;
if_acmpne 22
8: aload 2
checkcast sun.security.ssl.OCSPStatusRequest
astore 9
start local 9 9: new sun.security.provider.certpath.CertId
dup
aload 3
iconst_1
aaload
10: new sun.security.x509.SerialNumber
dup
aload 3
iconst_0
aaload
invokevirtual java.security.cert.X509Certificate.getSerialNumber:()Ljava/math/BigInteger;
invokespecial sun.security.x509.SerialNumber.<init>:(Ljava/math/BigInteger;)V
11: invokespecial sun.security.provider.certpath.CertId.<init>:(Ljava/security/cert/X509Certificate;Lsun/security/x509/SerialNumber;)V
astore 10
start local 10 12: aload 0
aload 10
aload 9
invokevirtual sun.security.ssl.StatusResponseManager.getFromCache:(Lsun/security/provider/certpath/CertId;Lsun/security/ssl/OCSPStatusRequest;)Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;
astore 11
start local 11 13: aload 11
ifnull 16
14: aload 7
aload 3
iconst_0
aaload
aload 11
getfield sun.security.ssl.StatusResponseManager$ResponseCacheEntry.ocspBytes:[B
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: goto 42
16: StackMap locals: sun.security.ssl.OCSPStatusRequest sun.security.provider.certpath.CertId sun.security.ssl.StatusResponseManager$ResponseCacheEntry
StackMap stack:
new sun.security.ssl.StatusResponseManager$StatusInfo
dup
aload 0
aload 3
iconst_0
aaload
aload 10
invokespecial sun.security.ssl.StatusResponseManager$StatusInfo.<init>:(Lsun/security/ssl/StatusResponseManager;Ljava/security/cert/X509Certificate;Lsun/security/provider/certpath/CertId;)V
astore 12
start local 12 17: aload 8
new sun.security.ssl.StatusResponseManager$OCSPFetchCall
dup
aload 0
aload 12
aload 9
invokespecial sun.security.ssl.StatusResponseManager$OCSPFetchCall.<init>:(Lsun/security/ssl/StatusResponseManager;Lsun/security/ssl/StatusResponseManager$StatusInfo;Lsun/security/ssl/OCSPStatusRequest;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 12 end local 11 end local 10 end local 9 18: goto 42
StackMap locals: sun.security.ssl.StatusResponseManager sun.security.ssl.StatusRequestType sun.security.ssl.StatusRequest java.security.cert.X509Certificate[] long java.util.concurrent.TimeUnit java.util.Map java.util.List
StackMap stack: java.io.IOException
19: astore 9
start local 9 20: new java.lang.StringBuilder
dup
ldc "Exception during CertId creation: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
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 9 21: goto 42
StackMap locals:
StackMap stack:
22: aload 1
getstatic sun.security.ssl.StatusRequestType.OCSP_MULTI:Lsun/security/ssl/StatusRequestType;
if_acmpne 41
23: aload 2
checkcast sun.security.ssl.OCSPStatusRequest
astore 9
start local 9 24: iconst_0
istore 10
start local 10 25: goto 39
26: StackMap locals: sun.security.ssl.OCSPStatusRequest int
StackMap stack:
new sun.security.provider.certpath.CertId
dup
aload 3
iload 10
iconst_1
iadd
aaload
27: new sun.security.x509.SerialNumber
dup
aload 3
iload 10
aaload
invokevirtual java.security.cert.X509Certificate.getSerialNumber:()Ljava/math/BigInteger;
invokespecial sun.security.x509.SerialNumber.<init>:(Ljava/math/BigInteger;)V
28: invokespecial sun.security.provider.certpath.CertId.<init>:(Ljava/security/cert/X509Certificate;Lsun/security/x509/SerialNumber;)V
astore 11
start local 11 29: aload 0
aload 11
aload 9
invokevirtual sun.security.ssl.StatusResponseManager.getFromCache:(Lsun/security/provider/certpath/CertId;Lsun/security/ssl/OCSPStatusRequest;)Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;
astore 12
start local 12 30: aload 12
ifnull 33
31: aload 7
aload 3
iload 10
aaload
aload 12
getfield sun.security.ssl.StatusResponseManager$ResponseCacheEntry.ocspBytes:[B
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
32: goto 38
33: StackMap locals: sun.security.provider.certpath.CertId sun.security.ssl.StatusResponseManager$ResponseCacheEntry
StackMap stack:
new sun.security.ssl.StatusResponseManager$StatusInfo
dup
aload 0
aload 3
iload 10
aaload
aload 11
invokespecial sun.security.ssl.StatusResponseManager$StatusInfo.<init>:(Lsun/security/ssl/StatusResponseManager;Ljava/security/cert/X509Certificate;Lsun/security/provider/certpath/CertId;)V
astore 13
start local 13 34: aload 8
new sun.security.ssl.StatusResponseManager$OCSPFetchCall
dup
aload 0
aload 13
aload 9
invokespecial sun.security.ssl.StatusResponseManager$OCSPFetchCall.<init>:(Lsun/security/ssl/StatusResponseManager;Lsun/security/ssl/StatusResponseManager$StatusInfo;Lsun/security/ssl/OCSPStatusRequest;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 13 end local 12 end local 11 35: goto 38
StackMap locals: sun.security.ssl.StatusResponseManager sun.security.ssl.StatusRequestType sun.security.ssl.StatusRequest java.security.cert.X509Certificate[] long java.util.concurrent.TimeUnit java.util.Map java.util.List sun.security.ssl.OCSPStatusRequest int
StackMap stack: java.io.IOException
36: astore 11
start local 11 37: new java.lang.StringBuilder
dup
ldc "Exception during CertId creation: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 11
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 11 38: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
39: iload 10
aload 3
arraylength
iconst_1
isub
if_icmplt 26
end local 10 end local 9 40: goto 42
41: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Unsupported status request type: "
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
42: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.List.isEmpty:()Z
ifne 62
43: aload 0
getfield sun.security.ssl.StatusResponseManager.threadMgr:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
aload 8
lload 4
aload 6
invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.invokeAll:(Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)Ljava/util/List;
44: astore 9
start local 9 45: aload 9
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 11
goto 58
StackMap locals: sun.security.ssl.StatusResponseManager sun.security.ssl.StatusRequestType sun.security.ssl.StatusRequest java.security.cert.X509Certificate[] long java.util.concurrent.TimeUnit java.util.Map java.util.List java.util.List top java.util.Iterator
StackMap stack:
46: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.concurrent.Future
astore 10
start local 10 47: aload 10
invokeinterface java.util.concurrent.Future.isDone:()Z
ifeq 58
48: aload 10
invokeinterface java.util.concurrent.Future.isCancelled:()Z
ifne 57
49: aload 10
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
checkcast sun.security.ssl.StatusResponseManager$StatusInfo
astore 12
start local 12 50: aload 12
ifnull 55
aload 12
getfield sun.security.ssl.StatusResponseManager$StatusInfo.responseData:Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;
ifnull 55
51: aload 7
aload 12
getfield sun.security.ssl.StatusResponseManager$StatusInfo.cert:Ljava/security/cert/X509Certificate;
52: aload 12
getfield sun.security.ssl.StatusResponseManager$StatusInfo.responseData:Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;
getfield sun.security.ssl.StatusResponseManager$ResponseCacheEntry.ocspBytes:[B
53: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
54: goto 58
55: StackMap locals: sun.security.ssl.StatusResponseManager sun.security.ssl.StatusRequestType sun.security.ssl.StatusRequest java.security.cert.X509Certificate[] long java.util.concurrent.TimeUnit java.util.Map java.util.List java.util.List java.util.concurrent.Future java.util.Iterator sun.security.ssl.StatusResponseManager$StatusInfo
StackMap stack:
ldc "Completed task had no response data"
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
end local 12 56: goto 58
57: StackMap locals:
StackMap stack:
ldc "Found cancelled task"
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
end local 10 58: StackMap locals: sun.security.ssl.StatusResponseManager sun.security.ssl.StatusRequestType sun.security.ssl.StatusRequest java.security.cert.X509Certificate[] long java.util.concurrent.TimeUnit java.util.Map java.util.List java.util.List top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 46
end local 9 59: goto 62
StackMap locals: sun.security.ssl.StatusResponseManager sun.security.ssl.StatusRequestType sun.security.ssl.StatusRequest java.security.cert.X509Certificate[] long java.util.concurrent.TimeUnit java.util.Map java.util.List
StackMap stack: java.lang.Exception
60: astore 9
start local 9 61: new java.lang.StringBuilder
dup
ldc "Exception when getting data: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
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 9 62: StackMap locals:
StackMap stack:
aload 7
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
areturn
end local 8 end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 63 0 this Lsun/security/ssl/StatusResponseManager;
0 63 1 type Lsun/security/ssl/StatusRequestType;
0 63 2 request Lsun/security/ssl/StatusRequest;
0 63 3 chain [Ljava/security/cert/X509Certificate;
0 63 4 delay J
0 63 6 unit Ljava/util/concurrent/TimeUnit;
1 63 7 responseMap Ljava/util/Map<Ljava/security/cert/X509Certificate;[B>;
2 63 8 requestList Ljava/util/List<Lsun/security/ssl/StatusResponseManager$OCSPFetchCall;>;
9 18 9 ocspReq Lsun/security/ssl/OCSPStatusRequest;
12 18 10 cid Lsun/security/provider/certpath/CertId;
13 18 11 cacheEntry Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;
17 18 12 sInfo Lsun/security/ssl/StatusResponseManager$StatusInfo;
20 21 9 exc Ljava/io/IOException;
24 40 9 ocspReq Lsun/security/ssl/OCSPStatusRequest;
25 40 10 ctr I
29 35 11 cid Lsun/security/provider/certpath/CertId;
30 35 12 cacheEntry Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;
34 35 13 sInfo Lsun/security/ssl/StatusResponseManager$StatusInfo;
37 38 11 exc Ljava/io/IOException;
45 59 9 resultList Ljava/util/List<Ljava/util/concurrent/Future<Lsun/security/ssl/StatusResponseManager$StatusInfo;>;>;
47 58 10 task Ljava/util/concurrent/Future<Lsun/security/ssl/StatusResponseManager$StatusInfo;>;
50 56 12 info Lsun/security/ssl/StatusResponseManager$StatusInfo;
61 62 9 exc Ljava/lang/Exception;
Exception table:
from to target type
8 18 19 Class java.io.IOException
26 35 36 Class java.io.IOException
43 59 60 Class java.lang.InterruptedException
43 59 60 Class java.util.concurrent.ExecutionException
Signature: (Lsun/security/ssl/StatusRequestType;Lsun/security/ssl/StatusRequest;[Ljava/security/cert/X509Certificate;JLjava/util/concurrent/TimeUnit;)Ljava/util/Map<Ljava/security/cert/X509Certificate;[B>;
MethodParameters:
Name Flags
type
request
chain
delay
unit
private sun.security.ssl.StatusResponseManager$ResponseCacheEntry getFromCache(sun.security.provider.certpath.CertId, sun.security.ssl.OCSPStatusRequest);
descriptor: (Lsun/security/provider/certpath/CertId;Lsun/security/ssl/OCSPStatusRequest;)Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual sun.security.ssl.OCSPStatusRequest.getExtensions:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: sun.security.ssl.StatusResponseManager sun.security.provider.certpath.CertId sun.security.ssl.OCSPStatusRequest top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.Extension
astore 3
start local 3 2: aload 3
invokeinterface java.security.cert.Extension.getId:()Ljava/lang/String;
getstatic sun.security.x509.PKIXExtensions.OCSPNonce_Id:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
3: ldc "Nonce extension found, skipping cache check"
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
4: aconst_null
areturn
end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
6: aload 0
getfield sun.security.ssl.StatusResponseManager.responseCache:Lsun/security/util/Cache;
aload 1
invokevirtual sun.security.util.Cache.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.ssl.StatusResponseManager$ResponseCacheEntry
astore 3
start local 3 7: aload 3
ifnull 11
aload 3
getfield sun.security.ssl.StatusResponseManager$ResponseCacheEntry.nextUpdate:Ljava/util/Date;
ifnull 11
8: aload 3
getfield sun.security.ssl.StatusResponseManager$ResponseCacheEntry.nextUpdate:Ljava/util/Date;
new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
invokevirtual java.util.Date.before:(Ljava/util/Date;)Z
ifeq 11
9: ldc "nextUpdate threshold exceeded, purging from cache"
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
10: aconst_null
astore 3
11: StackMap locals: sun.security.ssl.StatusResponseManager sun.security.provider.certpath.CertId sun.security.ssl.OCSPStatusRequest sun.security.ssl.StatusResponseManager$ResponseCacheEntry
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Check cache 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;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: aload 3
ifnull 13
ldc "HIT"
goto 14
StackMap locals:
StackMap stack: java.lang.StringBuilder
13: ldc "MISS"
StackMap locals: sun.security.ssl.StatusResponseManager sun.security.provider.certpath.CertId sun.security.ssl.OCSPStatusRequest sun.security.ssl.StatusResponseManager$ResponseCacheEntry
StackMap stack: java.lang.StringBuilder java.lang.String
14: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
15: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.security.ssl.StatusResponseManager.debugLog:(Ljava/lang/String;)V
16: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/security/ssl/StatusResponseManager;
0 17 1 cid Lsun/security/provider/certpath/CertId;
0 17 2 ocspRequest Lsun/security/ssl/OCSPStatusRequest;
2 5 3 ext Ljava/security/cert/Extension;
7 17 3 respEntry Lsun/security/ssl/StatusResponseManager$ResponseCacheEntry;
MethodParameters:
Name Flags
cid
ocspRequest
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "StatusResponseManager: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
ldc "Core threads: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.ssl.StatusResponseManager.threadMgr:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
invokevirtual java.util.concurrent.ScheduledThreadPoolExecutor.getCorePoolSize:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
2: aload 1
ldc ", Cache timeout: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 0
getfield sun.security.ssl.StatusResponseManager.cacheLifetime:I
ifle 6
4: aload 1
aload 0
getfield sun.security.ssl.StatusResponseManager.cacheLifetime:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " seconds"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: goto 7
6: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 1
ldc " indefinite"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: StackMap locals:
StackMap stack:
aload 1
ldc ", Cache MaxSize: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: aload 0
getfield sun.security.ssl.StatusResponseManager.cacheCapacity:I
ifle 11
9: aload 1
aload 0
getfield sun.security.ssl.StatusResponseManager.cacheCapacity:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " items"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: goto 12
11: StackMap locals:
StackMap stack:
aload 1
ldc " unbounded"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: StackMap locals:
StackMap stack:
aload 1
ldc ", Default URI: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: aload 0
getfield sun.security.ssl.StatusResponseManager.defaultResponder:Ljava/net/URI;
ifnull 16
14: aload 1
aload 0
getfield sun.security.ssl.StatusResponseManager.defaultResponder:Ljava/net/URI;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
15: goto 17
16: StackMap locals:
StackMap stack:
aload 1
ldc "NONE"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/security/ssl/StatusResponseManager;
1 18 1 sb Ljava/lang/StringBuilder;
static void debugLog(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic sun.security.ssl.StatusResponseManager.debug:Lsun/security/ssl/Debug;
ifnull 5
ldc "respmgr"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 5
1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 2: aload 1
ldc "["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 1
ldc "] "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 1 5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 message Ljava/lang/String;
2 5 1 sb Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
message
}
SourceFile: "StatusResponseManager.java"
NestMembers:
sun.security.ssl.StatusResponseManager$1 sun.security.ssl.StatusResponseManager$OCSPFetchCall sun.security.ssl.StatusResponseManager$ResponseCacheEntry sun.security.ssl.StatusResponseManager$StatusInfo
InnerClasses:
public DiscardPolicy = java.util.concurrent.ThreadPoolExecutor$DiscardPolicy of java.util.concurrent.ThreadPoolExecutor
sun.security.ssl.StatusResponseManager$1
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