class com.sun.jndi.ldap.Connection$HandshakeListener implements javax.net.ssl.HandshakeCompletedListener
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.jndi.ldap.Connection$HandshakeListener
super_class: java.lang.Object
{
private final java.util.concurrent.CompletableFuture<java.security.cert.X509Certificate> tlsHandshakeCompleted;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/CompletableFuture<Ljava/security/cert/X509Certificate;>;
final com.sun.jndi.ldap.Connection this$0;
descriptor: Lcom/sun/jndi/ldap/Connection;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(com.sun.jndi.ldap.Connection);
descriptor: (Lcom/sun/jndi/ldap/Connection;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 // com.sun.jndi.ldap.Connection$HandshakeListener this
0: .line 1062
aload 0 /* this */
aload 1
putfield com.sun.jndi.ldap.Connection$HandshakeListener.this$0:Lcom/sun/jndi/ldap/Connection;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 1064
aload 0 /* this */
2: .line 1065
new java.util.concurrent.CompletableFuture
dup
invokespecial java.util.concurrent.CompletableFuture.<init>:()V
putfield com.sun.jndi.ldap.Connection$HandshakeListener.tlsHandshakeCompleted:Ljava/util/concurrent/CompletableFuture;
3: .line 1062
return
end local 0 // com.sun.jndi.ldap.Connection$HandshakeListener this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/jndi/ldap/Connection$HandshakeListener;
MethodParameters:
Name Flags
this$0 final
public void handshakeCompleted(javax.net.ssl.HandshakeCompletedEvent);
descriptor: (Ljavax/net/ssl/HandshakeCompletedEvent;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 // com.sun.jndi.ldap.Connection$HandshakeListener this
start local 1 // javax.net.ssl.HandshakeCompletedEvent event
0: .line 1069
aconst_null
astore 2 /* tlsServerCert */
start local 2 // java.security.cert.X509Certificate tlsServerCert
1: .line 1071
aload 1 /* event */
invokevirtual javax.net.ssl.HandshakeCompletedEvent.getSocket:()Ljavax/net/ssl/SSLSocket;
invokevirtual javax.net.ssl.SSLSocket.getUseClientMode:()Z
ifeq 4
2: .line 1072
aload 1 /* event */
invokevirtual javax.net.ssl.HandshakeCompletedEvent.getPeerCertificates:()[Ljava/security/cert/Certificate;
astore 3 /* certs */
start local 3 // java.security.cert.Certificate[] certs
3: .line 1073
goto 5
end local 3 // java.security.cert.Certificate[] certs
4: .line 1074
StackMap locals: java.security.cert.X509Certificate
StackMap stack:
aload 1 /* event */
invokevirtual javax.net.ssl.HandshakeCompletedEvent.getLocalCertificates:()[Ljava/security/cert/Certificate;
astore 3 /* certs */
start local 3 // java.security.cert.Certificate[] certs
5: .line 1076
StackMap locals: java.security.cert.Certificate[]
StackMap stack:
aload 3 /* certs */
ifnull 8
aload 3 /* certs */
arraylength
ifle 8
6: .line 1077
aload 3 /* certs */
iconst_0
aaload
instanceof java.security.cert.X509Certificate
ifeq 8
7: .line 1078
aload 3 /* certs */
iconst_0
aaload
checkcast java.security.cert.X509Certificate
astore 2 /* tlsServerCert */
8: .line 1080
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.jndi.ldap.Connection$HandshakeListener.tlsHandshakeCompleted:Ljava/util/concurrent/CompletableFuture;
aload 2 /* tlsServerCert */
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
pop
end local 3 // java.security.cert.Certificate[] certs
end local 2 // java.security.cert.X509Certificate tlsServerCert
9: .line 1081
goto 14
StackMap locals: com.sun.jndi.ldap.Connection$HandshakeListener javax.net.ssl.HandshakeCompletedEvent
StackMap stack: javax.net.ssl.SSLPeerUnverifiedException
10: astore 2 /* ex */
start local 2 // javax.net.ssl.SSLPeerUnverifiedException ex
11: .line 1082
new javax.naming.CommunicationException
dup
invokespecial javax.naming.CommunicationException.<init>:()V
astore 3 /* ce */
start local 3 // javax.naming.CommunicationException ce
12: .line 1083
aload 3 /* ce */
aload 0 /* this */
getfield com.sun.jndi.ldap.Connection$HandshakeListener.this$0:Lcom/sun/jndi/ldap/Connection;
getfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
invokevirtual javax.naming.CommunicationException.setRootCause:(Ljava/lang/Throwable;)V
13: .line 1084
aload 0 /* this */
getfield com.sun.jndi.ldap.Connection$HandshakeListener.tlsHandshakeCompleted:Ljava/util/concurrent/CompletableFuture;
aload 2 /* ex */
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
end local 3 // javax.naming.CommunicationException ce
end local 2 // javax.net.ssl.SSLPeerUnverifiedException ex
14: .line 1086
StackMap locals:
StackMap stack:
return
end local 1 // javax.net.ssl.HandshakeCompletedEvent event
end local 0 // com.sun.jndi.ldap.Connection$HandshakeListener this
LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/sun/jndi/ldap/Connection$HandshakeListener;
0 15 1 event Ljavax/net/ssl/HandshakeCompletedEvent;
1 9 2 tlsServerCert Ljava/security/cert/X509Certificate;
3 4 3 certs [Ljava/security/cert/Certificate;
5 9 3 certs [Ljava/security/cert/Certificate;
11 14 2 ex Ljavax/net/ssl/SSLPeerUnverifiedException;
12 14 3 ce Ljavax/naming/CommunicationException;
Exception table:
from to target type
0 9 10 Class javax.net.ssl.SSLPeerUnverifiedException
MethodParameters:
Name Flags
event
}
SourceFile: "Connection.java"
NestHost: com.sun.jndi.ldap.Connection
InnerClasses:
private HandshakeListener = com.sun.jndi.ldap.Connection$HandshakeListener of com.sun.jndi.ldap.Connection