public final class com.sun.jndi.ldap.Connection implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.jndi.ldap.Connection
super_class: java.lang.Object
{
private static final boolean debug;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int dump;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private final java.lang.Thread worker;
descriptor: Ljava/lang/Thread;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean v3;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public final java.lang.String host;
descriptor: Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final int port;
descriptor: I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
private boolean bound;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.io.OutputStream traceFile;
descriptor: Ljava/io/OutputStream;
flags: (0x0002) ACC_PRIVATE
private java.lang.String traceTagIn;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String traceTagOut;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
public java.io.InputStream inStream;
descriptor: Ljava/io/InputStream;
flags: (0x0001) ACC_PUBLIC
public java.io.OutputStream outStream;
descriptor: Ljava/io/OutputStream;
flags: (0x0001) ACC_PUBLIC
public java.net.Socket sock;
descriptor: Ljava/net/Socket;
flags: (0x0001) ACC_PUBLIC
private final com.sun.jndi.ldap.LdapClient parent;
descriptor: Lcom/sun/jndi/ldap/LdapClient;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int outMsgId;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private com.sun.jndi.ldap.LdapRequest pendingRequests;
descriptor: Lcom/sun/jndi/ldap/LdapRequest;
flags: (0x0002) ACC_PRIVATE
volatile java.io.IOException closureReason;
descriptor: Ljava/io/IOException;
flags: (0x0040) ACC_VOLATILE
volatile boolean useable;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
int readTimeout;
descriptor: I
flags: (0x0000)
int connectTimeout;
descriptor: I
flags: (0x0000)
private volatile boolean isUpgradedToStartTls;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
final java.lang.Object startTlsLock;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
private static final boolean IS_HOSTNAME_VERIFICATION_DISABLED;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.Object pauseLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean paused;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private volatile com.sun.jndi.ldap.Connection$HandshakeListener tlsHandshakeListener;
descriptor: Lcom/sun/jndi/ldap/Connection$HandshakeListener;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.sun.jndi.ldap.Connection.hostnameVerificationDisabledValue:()Z
1: putstatic com.sun.jndi.ldap.Connection.IS_HOSTNAME_VERIFICATION_DISABLED:Z
2: return
LocalVariableTable:
Start End Slot Name Signature
private static boolean hostnameVerificationDisabledValue();
descriptor: ()Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=0
0: invokedynamic run()Ljava/security/PrivilegedAction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
com/sun/jndi/ldap/Connection.lambda$0()Ljava/lang/String; (6)
()Ljava/lang/String;
astore 0
start local 0 1: aload 0
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
astore 1
start local 1 2: aload 1
ifnonnull 4
3: iconst_0
ireturn
4: StackMap locals: java.security.PrivilegedAction java.lang.String
StackMap stack:
aload 1
invokevirtual java.lang.String.isEmpty:()Z
ifeq 5
iconst_1
goto 6
StackMap locals:
StackMap stack:
5: aload 1
invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
StackMap locals:
StackMap stack: int
6: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 7 0 act Ljava/security/PrivilegedAction<Ljava/lang/String;>;
2 7 1 prop Ljava/lang/String;
void setV3(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield com.sun.jndi.ldap.Connection.v3:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/jndi/ldap/Connection;
0 2 1 v Z
MethodParameters:
Name Flags
v
void setBound();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield com.sun.jndi.ldap.Connection.bound:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/jndi/ldap/Connection;
void <init>(com.sun.jndi.ldap.LdapClient, java.lang.String, int, java.lang.String, int, int, java.io.OutputStream);
descriptor: (Lcom/sun/jndi/ldap/LdapClient;Ljava/lang/String;ILjava/lang/String;IILjava/io/OutputStream;)V
flags: (0x0000)
Code:
stack=6, locals=11, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_1
putfield com.sun.jndi.ldap.Connection.v3:Z
2: aload 0
iconst_0
putfield com.sun.jndi.ldap.Connection.bound:Z
3: aload 0
aconst_null
putfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
4: aload 0
aconst_null
putfield com.sun.jndi.ldap.Connection.traceTagIn:Ljava/lang/String;
5: aload 0
aconst_null
putfield com.sun.jndi.ldap.Connection.traceTagOut:Ljava/lang/String;
6: aload 0
iconst_0
putfield com.sun.jndi.ldap.Connection.outMsgId:I
7: aload 0
aconst_null
putfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
8: aload 0
aconst_null
putfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
9: aload 0
iconst_1
putfield com.sun.jndi.ldap.Connection.useable:Z
10: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield com.sun.jndi.ldap.Connection.startTlsLock:Ljava/lang/Object;
11: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield com.sun.jndi.ldap.Connection.pauseLock:Ljava/lang/Object;
12: aload 0
iconst_0
putfield com.sun.jndi.ldap.Connection.paused:Z
13: aload 0
aload 2
putfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
14: aload 0
iload 3
putfield com.sun.jndi.ldap.Connection.port:I
15: aload 0
aload 1
putfield com.sun.jndi.ldap.Connection.parent:Lcom/sun/jndi/ldap/LdapClient;
16: aload 0
iload 6
putfield com.sun.jndi.ldap.Connection.readTimeout:I
17: aload 0
iload 5
putfield com.sun.jndi.ldap.Connection.connectTimeout:I
18: aload 7
ifnull 22
19: aload 0
aload 7
putfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
20: aload 0
new java.lang.StringBuilder
dup
ldc "<- "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "\n\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield com.sun.jndi.ldap.Connection.traceTagIn:Ljava/lang/String;
21: aload 0
new java.lang.StringBuilder
dup
ldc "-> "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "\n\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield com.sun.jndi.ldap.Connection.traceTagOut:Ljava/lang/String;
22: StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapClient java.lang.String int java.lang.String int int java.io.OutputStream
StackMap stack:
aload 0
aload 0
aload 2
iload 3
aload 4
iload 5
invokevirtual com.sun.jndi.ldap.Connection.createSocket:(Ljava/lang/String;ILjava/lang/String;I)Ljava/net/Socket;
putfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
23: aload 0
new java.io.BufferedInputStream
dup
aload 0
getfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
invokevirtual java.net.Socket.getInputStream:()Ljava/io/InputStream;
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
putfield com.sun.jndi.ldap.Connection.inStream:Ljava/io/InputStream;
24: aload 0
new java.io.BufferedOutputStream
dup
aload 0
getfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
invokevirtual java.net.Socket.getOutputStream:()Ljava/io/OutputStream;
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
putfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
25: goto 37
StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
26: astore 8
start local 8 27: aload 8
invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
astore 9
start local 9 28: new javax.naming.CommunicationException
dup
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
29: astore 10
start local 10 30: aload 10
aload 9
invokevirtual javax.naming.CommunicationException.setRootCause:(Ljava/lang/Throwable;)V
31: aload 10
athrow
end local 10 end local 9 end local 8 32: StackMap locals:
StackMap stack: java.lang.Exception
astore 8
start local 8 33: new javax.naming.CommunicationException
dup
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
34: astore 9
start local 9 35: aload 9
aload 8
invokevirtual javax.naming.CommunicationException.setRootCause:(Ljava/lang/Throwable;)V
36: aload 9
athrow
end local 9 end local 8 37: StackMap locals:
StackMap stack:
aload 0
getstatic com.sun.jndi.ldap.Obj.helper:Lcom/sun/jndi/ldap/VersionHelper;
aload 0
invokevirtual com.sun.jndi.ldap.VersionHelper.createThread:(Ljava/lang/Runnable;)Ljava/lang/Thread;
putfield com.sun.jndi.ldap.Connection.worker:Ljava/lang/Thread;
38: aload 0
getfield com.sun.jndi.ldap.Connection.worker:Ljava/lang/Thread;
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
39: aload 0
getfield com.sun.jndi.ldap.Connection.worker:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
40: return
end local 7 end local 6 end local 5 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 Lcom/sun/jndi/ldap/Connection;
0 41 1 parent Lcom/sun/jndi/ldap/LdapClient;
0 41 2 host Ljava/lang/String;
0 41 3 port I
0 41 4 socketFactory Ljava/lang/String;
0 41 5 connectTimeout I
0 41 6 readTimeout I
0 41 7 trace Ljava/io/OutputStream;
27 32 8 e Ljava/lang/reflect/InvocationTargetException;
28 32 9 realException Ljava/lang/Throwable;
30 32 10 ce Ljavax/naming/CommunicationException;
33 37 8 e Ljava/lang/Exception;
35 37 9 ce Ljavax/naming/CommunicationException;
Exception table:
from to target type
22 25 26 Class java.lang.reflect.InvocationTargetException
22 25 32 Class java.lang.Exception
Exceptions:
throws javax.naming.NamingException
MethodParameters:
Name Flags
parent
host
port
socketFactory
connectTimeout
readTimeout
trace
private java.net.InetSocketAddress createInetSocketAddress(java.lang.String, int);
descriptor: (Ljava/lang/String;I)Ljava/net/InetSocketAddress;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.net.InetSocketAddress
dup
aload 1
iload 2
invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/jndi/ldap/Connection;
0 1 1 host Ljava/lang/String;
0 1 2 port I
MethodParameters:
Name Flags
host
port
private java.net.Socket createSocket(java.lang.String, int, java.lang.String, int);
descriptor: (Ljava/lang/String;ILjava/lang/String;I)Ljava/net/Socket;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 5
start local 5 1: aload 3
ifnull 15
2: getstatic com.sun.jndi.ldap.Obj.helper:Lcom/sun/jndi/ldap/VersionHelper;
aload 3
invokevirtual com.sun.jndi.ldap.VersionHelper.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
3: astore 6
start local 6 4: aload 6
ldc "getDefault"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
5: astore 7
start local 7 6: aload 7
aconst_null
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast javax.net.SocketFactory
astore 8
start local 8 7: iload 4
ifle 12
8: aload 0
aload 1
iload 2
invokevirtual com.sun.jndi.ldap.Connection.createInetSocketAddress:(Ljava/lang/String;I)Ljava/net/InetSocketAddress;
9: astore 9
start local 9 10: aload 8
invokevirtual javax.net.SocketFactory.createSocket:()Ljava/net/Socket;
astore 5
11: aload 5
aload 9
iload 4
invokevirtual java.net.Socket.connect:(Ljava/net/SocketAddress;I)V
end local 9 12: StackMap locals: com.sun.jndi.ldap.Connection java.lang.String int java.lang.String int java.net.Socket java.lang.Class java.lang.reflect.Method javax.net.SocketFactory
StackMap stack:
aload 5
ifnonnull 21
13: aload 8
aload 1
iload 2
invokevirtual javax.net.SocketFactory.createSocket:(Ljava/lang/String;I)Ljava/net/Socket;
astore 5
end local 8 end local 7 end local 6 14: goto 21
15: StackMap locals:
StackMap stack:
iload 4
ifle 19
16: aload 0
aload 1
iload 2
invokevirtual com.sun.jndi.ldap.Connection.createInetSocketAddress:(Ljava/lang/String;I)Ljava/net/InetSocketAddress;
astore 6
start local 6 17: new java.net.Socket
dup
invokespecial java.net.Socket.<init>:()V
astore 5
18: aload 5
aload 6
iload 4
invokevirtual java.net.Socket.connect:(Ljava/net/SocketAddress;I)V
end local 6 19: StackMap locals:
StackMap stack:
aload 5
ifnonnull 21
20: new java.net.Socket
dup
aload 1
iload 2
invokespecial java.net.Socket.<init>:(Ljava/lang/String;I)V
astore 5
21: StackMap locals:
StackMap stack:
aload 5
instanceof javax.net.ssl.SSLSocket
ifeq 33
22: aload 5
checkcast javax.net.ssl.SSLSocket
astore 6
start local 6 23: getstatic com.sun.jndi.ldap.Connection.IS_HOSTNAME_VERIFICATION_DISABLED:Z
ifne 27
24: aload 6
invokevirtual javax.net.ssl.SSLSocket.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
astore 7
start local 7 25: aload 7
ldc "LDAPS"
invokevirtual javax.net.ssl.SSLParameters.setEndpointIdentificationAlgorithm:(Ljava/lang/String;)V
26: aload 6
aload 7
invokevirtual javax.net.ssl.SSLSocket.setSSLParameters:(Ljavax/net/ssl/SSLParameters;)V
end local 7 27: StackMap locals: javax.net.ssl.SSLSocket
StackMap stack:
aload 0
aload 6
invokevirtual com.sun.jndi.ldap.Connection.setHandshakeCompletedListener:(Ljavax/net/ssl/SSLSocket;)V
28: iload 4
ifle 33
29: aload 6
invokevirtual javax.net.ssl.SSLSocket.getSoTimeout:()I
istore 7
start local 7 30: aload 6
iload 4
invokevirtual javax.net.ssl.SSLSocket.setSoTimeout:(I)V
31: aload 6
invokevirtual javax.net.ssl.SSLSocket.startHandshake:()V
32: aload 6
iload 7
invokevirtual javax.net.ssl.SSLSocket.setSoTimeout:(I)V
end local 7 end local 6 33: StackMap locals:
StackMap stack:
aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lcom/sun/jndi/ldap/Connection;
0 34 1 host Ljava/lang/String;
0 34 2 port I
0 34 3 socketFactory Ljava/lang/String;
0 34 4 connectTimeout I
1 34 5 socket Ljava/net/Socket;
4 14 6 socketFactoryClass Ljava/lang/Class<+Ljavax/net/SocketFactory;>;
6 14 7 getDefault Ljava/lang/reflect/Method;
7 14 8 factory Ljavax/net/SocketFactory;
10 12 9 endpoint Ljava/net/InetSocketAddress;
17 19 6 endpoint Ljava/net/InetSocketAddress;
23 33 6 sslSocket Ljavax/net/ssl/SSLSocket;
25 27 7 param Ljavax/net/ssl/SSLParameters;
30 33 7 socketTimeout I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
host
port
socketFactory
connectTimeout
synchronized int getMsgId();
descriptor: ()I
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield com.sun.jndi.ldap.Connection.outMsgId:I
iconst_1
iadd
dup_x1
putfield com.sun.jndi.ldap.Connection.outMsgId:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/jndi/ldap/Connection;
com.sun.jndi.ldap.LdapRequest writeRequest(com.sun.jndi.ldap.BerEncoder, int);
descriptor: (Lcom/sun/jndi/ldap/BerEncoder;I)Lcom/sun/jndi/ldap/LdapRequest;
flags: (0x0000)
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
iconst_0
iconst_m1
invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;IZI)Lcom/sun/jndi/ldap/LdapRequest;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/jndi/ldap/Connection;
0 1 1 ber Lcom/sun/jndi/ldap/BerEncoder;
0 1 2 msgId I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
ber
msgId
com.sun.jndi.ldap.LdapRequest writeRequest(com.sun.jndi.ldap.BerEncoder, int, boolean);
descriptor: (Lcom/sun/jndi/ldap/BerEncoder;IZ)Lcom/sun/jndi/ldap/LdapRequest;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
iload 3
iconst_m1
invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;IZI)Lcom/sun/jndi/ldap/LdapRequest;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/jndi/ldap/Connection;
0 1 1 ber Lcom/sun/jndi/ldap/BerEncoder;
0 1 2 msgId I
0 1 3 pauseAfterReceipt Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
ber
msgId
pauseAfterReceipt
com.sun.jndi.ldap.LdapRequest writeRequest(com.sun.jndi.ldap.BerEncoder, int, boolean, int);
descriptor: (Lcom/sun/jndi/ldap/BerEncoder;IZI)Lcom/sun/jndi/ldap/LdapRequest;
flags: (0x0000)
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new com.sun.jndi.ldap.LdapRequest
dup
iload 2
iload 3
iload 4
invokespecial com.sun.jndi.ldap.LdapRequest.<init>:(IZI)V
1: astore 5
start local 5 2: aload 0
aload 5
invokevirtual com.sun.jndi.ldap.Connection.addRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
3: aload 0
getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
ifnull 5
4: aload 0
getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
aload 0
getfield com.sun.jndi.ldap.Connection.traceTagOut:Ljava/lang/String;
aload 1
invokevirtual com.sun.jndi.ldap.BerEncoder.getBuf:()[B
iconst_0
aload 1
invokevirtual com.sun.jndi.ldap.BerEncoder.getDataLen:()I
invokestatic com.sun.jndi.ldap.Ber.dumpBER:(Ljava/io/OutputStream;Ljava/lang/String;[BII)V
5: StackMap locals: com.sun.jndi.ldap.LdapRequest
StackMap stack:
aload 0
invokevirtual com.sun.jndi.ldap.Connection.unpauseReader:()V
6: aload 0
dup
astore 6
monitorenter
7: aload 0
getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
aload 1
invokevirtual com.sun.jndi.ldap.BerEncoder.getBuf:()[B
iconst_0
aload 1
invokevirtual com.sun.jndi.ldap.BerEncoder.getDataLen:()I
invokevirtual java.io.OutputStream.write:([BII)V
8: aload 0
getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
9: aload 6
monitorexit
10: goto 16
StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.BerEncoder int int int com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.Connection
StackMap stack: java.lang.Throwable
11: aload 6
monitorexit
12: athrow
13: StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.BerEncoder int int int com.sun.jndi.ldap.LdapRequest
StackMap stack: java.io.IOException
astore 6
start local 6 14: aload 0
aconst_null
iconst_1
invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
15: aload 0
aload 6
dup_x1
putfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
athrow
end local 6 16: StackMap locals:
StackMap stack:
aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/jndi/ldap/Connection;
0 17 1 ber Lcom/sun/jndi/ldap/BerEncoder;
0 17 2 msgId I
0 17 3 pauseAfterReceipt Z
0 17 4 replyQueueCapacity I
2 17 5 req Lcom/sun/jndi/ldap/LdapRequest;
14 16 6 e Ljava/io/IOException;
Exception table:
from to target type
7 10 11 any
11 12 11 any
6 13 13 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
ber
msgId
pauseAfterReceipt
replyQueueCapacity
com.sun.jndi.ldap.BerDecoder readReply(com.sun.jndi.ldap.LdapRequest);
descriptor: (Lcom/sun/jndi/ldap/LdapRequest;)Lcom/sun/jndi/ldap/BerDecoder;
flags: (0x0000)
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 3
monitorenter
1: aload 0
getfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
ifnonnull 5
2: new javax.naming.ServiceUnavailableException
dup
new java.lang.StringBuilder
dup
aload 0
getfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.sun.jndi.ldap.Connection.port:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
3: ldc "; socket closed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial javax.naming.ServiceUnavailableException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest top com.sun.jndi.ldap.Connection
StackMap stack:
aload 3
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
9: StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest
StackMap stack:
aconst_null
astore 3
start local 3 10: aload 1
aload 0
getfield com.sun.jndi.ldap.Connection.readTimeout:I
i2l
invokevirtual com.sun.jndi.ldap.LdapRequest.getReplyBer:(J)Lcom/sun/jndi/ldap/BerDecoder;
astore 2
start local 2 11: goto 21
end local 2 StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest top javax.naming.NamingException
StackMap stack: java.lang.InterruptedException
12: pop
13: new javax.naming.InterruptedNamingException
dup
14: ldc "Interrupted during LDAP operation"
15: invokespecial javax.naming.InterruptedNamingException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack: javax.naming.CommunicationException
astore 4
start local 4 17: aload 4
athrow
end local 4 18: StackMap locals:
StackMap stack: javax.naming.NamingException
astore 4
start local 4 19: aload 4
astore 3
20: aconst_null
astore 2
end local 4 start local 2 21: StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.BerDecoder javax.naming.NamingException
StackMap stack:
aload 2
ifnonnull 23
22: aload 0
aload 1
aconst_null
invokevirtual com.sun.jndi.ldap.Connection.abandonRequest:(Lcom/sun/jndi/ldap/LdapRequest;[Ljavax/naming/ldap/Control;)V
23: StackMap locals:
StackMap stack:
aload 3
ifnull 25
24: aload 3
athrow
25: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/sun/jndi/ldap/Connection;
0 26 1 ldr Lcom/sun/jndi/ldap/LdapRequest;
11 12 2 rber Lcom/sun/jndi/ldap/BerDecoder;
21 26 2 rber Lcom/sun/jndi/ldap/BerDecoder;
10 26 3 namingException Ljavax/naming/NamingException;
17 18 4 ce Ljavax/naming/CommunicationException;
19 21 4 ne Ljavax/naming/NamingException;
Exception table:
from to target type
1 6 7 any
7 8 7 any
10 11 12 Class java.lang.InterruptedException
10 11 16 Class javax.naming.CommunicationException
10 11 18 Class javax.naming.NamingException
Exceptions:
throws java.io.IOException, javax.naming.NamingException
MethodParameters:
Name Flags
ldr
private synchronized void addRequest(com.sun.jndi.ldap.LdapRequest);
descriptor: (Lcom/sun/jndi/ldap/LdapRequest;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
astore 2
start local 2 1: aload 2
ifnonnull 5
2: aload 0
aload 1
putfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
3: aload 1
aconst_null
putfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
4: goto 7
5: StackMap locals: com.sun.jndi.ldap.LdapRequest
StackMap stack:
aload 1
aload 0
getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
putfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
6: aload 0
aload 1
putfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
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 Lcom/sun/jndi/ldap/Connection;
0 8 1 ldapRequest Lcom/sun/jndi/ldap/LdapRequest;
1 8 2 ldr Lcom/sun/jndi/ldap/LdapRequest;
MethodParameters:
Name Flags
ldapRequest
synchronized com.sun.jndi.ldap.LdapRequest findRequest(int);
descriptor: (I)Lcom/sun/jndi/ldap/LdapRequest;
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
astore 2
start local 2 1: goto 5
2: StackMap locals: com.sun.jndi.ldap.LdapRequest
StackMap stack:
aload 2
getfield com.sun.jndi.ldap.LdapRequest.msgId:I
iload 1
if_icmpne 4
3: aload 2
areturn
4: StackMap locals:
StackMap stack:
aload 2
getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
astore 2
5: StackMap locals:
StackMap stack:
aload 2
ifnonnull 2
6: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/jndi/ldap/Connection;
0 7 1 msgId I
1 7 2 ldr Lcom/sun/jndi/ldap/LdapRequest;
MethodParameters:
Name Flags
msgId
synchronized void removeRequest(com.sun.jndi.ldap.LdapRequest);
descriptor: (Lcom/sun/jndi/ldap/LdapRequest;)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: goto 12
3: StackMap locals: com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.LdapRequest
StackMap stack:
aload 2
aload 1
if_acmpne 10
4: aload 2
invokevirtual com.sun.jndi.ldap.LdapRequest.cancel:()V
5: aload 3
ifnull 8
6: aload 3
aload 2
getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
putfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
7: goto 9
8: StackMap locals:
StackMap stack:
aload 0
aload 2
getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
putfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
9: StackMap locals:
StackMap stack:
aload 2
aconst_null
putfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
10: StackMap locals:
StackMap stack:
aload 2
astore 3
11: aload 2
getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
astore 2
12: StackMap locals:
StackMap stack:
aload 2
ifnonnull 3
13: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/jndi/ldap/Connection;
0 14 1 req Lcom/sun/jndi/ldap/LdapRequest;
1 14 2 ldr Lcom/sun/jndi/ldap/LdapRequest;
2 14 3 ldrprev Lcom/sun/jndi/ldap/LdapRequest;
MethodParameters:
Name Flags
req
void abandonRequest(com.sun.jndi.ldap.LdapRequest, javax.naming.ldap.Control[]);
descriptor: (Lcom/sun/jndi/ldap/LdapRequest;[Ljavax/naming/ldap/Control;)V
flags: (0x0000)
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.sun.jndi.ldap.Connection.removeRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
1: new com.sun.jndi.ldap.BerEncoder
dup
sipush 256
invokespecial com.sun.jndi.ldap.BerEncoder.<init>:(I)V
astore 3
start local 3 2: aload 0
invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
istore 4
start local 4 3: aload 3
bipush 48
invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
4: aload 3
iload 4
invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
5: aload 3
aload 1
getfield com.sun.jndi.ldap.LdapRequest.msgId:I
bipush 80
invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(II)V
6: aload 0
getfield com.sun.jndi.ldap.Connection.v3:Z
ifeq 8
7: aload 3
aload 2
invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
8: StackMap locals: com.sun.jndi.ldap.BerEncoder int
StackMap stack:
aload 3
invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
9: aload 0
getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
ifnull 13
10: aload 0
getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
aload 0
getfield com.sun.jndi.ldap.Connection.traceTagOut:Ljava/lang/String;
aload 3
invokevirtual com.sun.jndi.ldap.BerEncoder.getBuf:()[B
iconst_0
11: aload 3
invokevirtual com.sun.jndi.ldap.BerEncoder.getDataLen:()I
12: invokestatic com.sun.jndi.ldap.Ber.dumpBER:(Ljava/io/OutputStream;Ljava/lang/String;[BII)V
13: StackMap locals:
StackMap stack:
aload 0
dup
astore 5
monitorenter
14: aload 0
getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
aload 3
invokevirtual com.sun.jndi.ldap.BerEncoder.getBuf:()[B
iconst_0
aload 3
invokevirtual com.sun.jndi.ldap.BerEncoder.getDataLen:()I
invokevirtual java.io.OutputStream.write:([BII)V
15: aload 0
getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
16: aload 5
monitorexit
17: goto 21
StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest javax.naming.ldap.Control[] com.sun.jndi.ldap.BerEncoder int com.sun.jndi.ldap.Connection
StackMap stack: java.lang.Throwable
18: aload 5
monitorexit
19: athrow
20: StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest javax.naming.ldap.Control[] com.sun.jndi.ldap.BerEncoder int
StackMap stack: java.io.IOException
pop
21: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/sun/jndi/ldap/Connection;
0 22 1 ldr Lcom/sun/jndi/ldap/LdapRequest;
0 22 2 reqCtls [Ljavax/naming/ldap/Control;
2 22 3 ber Lcom/sun/jndi/ldap/BerEncoder;
3 22 4 abandonMsgId I
Exception table:
from to target type
14 17 18 any
18 19 18 any
3 20 20 Class java.io.IOException
MethodParameters:
Name Flags
ldr
reqCtls
synchronized void abandonOutstandingReqs(javax.naming.ldap.Control[]);
descriptor: ([Ljavax/naming/ldap/Control;)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
astore 2
start local 2 1: goto 4
2: StackMap locals: com.sun.jndi.ldap.LdapRequest
StackMap stack:
aload 0
aload 2
aload 1
invokevirtual com.sun.jndi.ldap.Connection.abandonRequest:(Lcom/sun/jndi/ldap/LdapRequest;[Ljavax/naming/ldap/Control;)V
3: aload 0
aload 2
getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
dup
astore 2
putfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
4: StackMap locals:
StackMap stack:
aload 2
ifnonnull 2
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/jndi/ldap/Connection;
0 6 1 reqCtls [Ljavax/naming/ldap/Control;
1 6 2 ldr Lcom/sun/jndi/ldap/LdapRequest;
MethodParameters:
Name Flags
reqCtls
private void ldapUnbind(javax.naming.ldap.Control[]);
descriptor: ([Ljavax/naming/ldap/Control;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: new com.sun.jndi.ldap.BerEncoder
dup
sipush 256
invokespecial com.sun.jndi.ldap.BerEncoder.<init>:(I)V
astore 2
start local 2 1: aload 0
invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
istore 3
start local 3 2: aload 2
bipush 48
invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
3: aload 2
iload 3
invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
4: aload 2
bipush 66
invokevirtual com.sun.jndi.ldap.BerEncoder.encodeByte:(I)V
5: aload 2
iconst_0
invokevirtual com.sun.jndi.ldap.BerEncoder.encodeByte:(I)V
6: aload 0
getfield com.sun.jndi.ldap.Connection.v3:Z
ifeq 8
7: aload 2
aload 1
invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
8: StackMap locals: com.sun.jndi.ldap.BerEncoder int
StackMap stack:
aload 2
invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
9: aload 0
getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
ifnull 13
10: aload 0
getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
aload 0
getfield com.sun.jndi.ldap.Connection.traceTagOut:Ljava/lang/String;
aload 2
invokevirtual com.sun.jndi.ldap.BerEncoder.getBuf:()[B
11: iconst_0
aload 2
invokevirtual com.sun.jndi.ldap.BerEncoder.getDataLen:()I
12: invokestatic com.sun.jndi.ldap.Ber.dumpBER:(Ljava/io/OutputStream;Ljava/lang/String;[BII)V
13: StackMap locals:
StackMap stack:
aload 0
dup
astore 4
monitorenter
14: aload 0
getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
aload 2
invokevirtual com.sun.jndi.ldap.BerEncoder.getBuf:()[B
iconst_0
aload 2
invokevirtual com.sun.jndi.ldap.BerEncoder.getDataLen:()I
invokevirtual java.io.OutputStream.write:([BII)V
15: aload 0
getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
16: aload 4
monitorexit
17: goto 21
StackMap locals: com.sun.jndi.ldap.Connection javax.naming.ldap.Control[] com.sun.jndi.ldap.BerEncoder int com.sun.jndi.ldap.Connection
StackMap stack: java.lang.Throwable
18: aload 4
monitorexit
19: athrow
20: StackMap locals: com.sun.jndi.ldap.Connection javax.naming.ldap.Control[] com.sun.jndi.ldap.BerEncoder int
StackMap stack: java.io.IOException
pop
21: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/sun/jndi/ldap/Connection;
0 22 1 reqCtls [Ljavax/naming/ldap/Control;
1 22 2 ber Lcom/sun/jndi/ldap/BerEncoder;
2 22 3 unbindMsgId I
Exception table:
from to target type
14 17 18 any
18 19 18 any
2 20 20 Class java.io.IOException
MethodParameters:
Name Flags
reqCtls
void cleanup(javax.naming.ldap.Control[], boolean);
descriptor: ([Ljavax/naming/ldap/Control;Z)V
flags: (0x0000)
Code:
stack=2, locals=7, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: aload 0
dup
astore 4
monitorenter
2: aload 0
iconst_0
putfield com.sun.jndi.ldap.Connection.useable:Z
3: aload 0
getfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
ifnull 50
4: iload 2
ifne 6
5: aload 0
aload 1
invokevirtual com.sun.jndi.ldap.Connection.abandonOutstandingReqs:([Ljavax/naming/ldap/Control;)V
6: StackMap locals: int com.sun.jndi.ldap.Connection
StackMap stack:
aload 0
getfield com.sun.jndi.ldap.Connection.bound:Z
ifeq 30
7: aload 0
aload 1
invokevirtual com.sun.jndi.ldap.Connection.ldapUnbind:([Ljavax/naming/ldap/Control;)V
8: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 5
10: aload 0
getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
11: aload 0
getfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
invokevirtual java.net.Socket.close:()V
12: aload 0
invokevirtual com.sun.jndi.ldap.Connection.unpauseReader:()V
13: goto 15
StackMap locals: com.sun.jndi.ldap.Connection javax.naming.ldap.Control[] int int com.sun.jndi.ldap.Connection java.lang.Throwable
StackMap stack: java.io.IOException
14: astore 6
15: StackMap locals:
StackMap stack:
iload 2
ifne 21
16: aload 0
getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
astore 6
start local 6 17: goto 20
18: StackMap locals: com.sun.jndi.ldap.LdapRequest
StackMap stack:
aload 6
invokevirtual com.sun.jndi.ldap.LdapRequest.cancel:()V
19: aload 6
getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
astore 6
20: StackMap locals:
StackMap stack:
aload 6
ifnonnull 18
end local 6 21: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.jndi.ldap.Connection.isTlsConnection:()Z
ifeq 28
aload 0
getfield com.sun.jndi.ldap.Connection.tlsHandshakeListener:Lcom/sun/jndi/ldap/Connection$HandshakeListener;
ifnull 28
22: aload 0
getfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
ifnull 27
23: new javax.naming.CommunicationException
dup
invokespecial javax.naming.CommunicationException.<init>:()V
astore 6
start local 6 24: aload 6
aload 0
getfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
invokevirtual javax.naming.CommunicationException.setRootCause:(Ljava/lang/Throwable;)V
25: aload 0
getfield com.sun.jndi.ldap.Connection.tlsHandshakeListener:Lcom/sun/jndi/ldap/Connection$HandshakeListener;
getfield com.sun.jndi.ldap.Connection$HandshakeListener.tlsHandshakeCompleted:Ljava/util/concurrent/CompletableFuture;
aload 6
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
end local 6 26: goto 28
27: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jndi.ldap.Connection.tlsHandshakeListener:Lcom/sun/jndi/ldap/Connection$HandshakeListener;
getfield com.sun.jndi.ldap.Connection$HandshakeListener.tlsHandshakeCompleted:Ljava/util/concurrent/CompletableFuture;
iconst_0
invokevirtual java.util.concurrent.CompletableFuture.cancel:(Z)Z
pop
28: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
29: aload 5
athrow
30: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
31: aload 0
getfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
invokevirtual java.net.Socket.close:()V
32: aload 0
invokevirtual com.sun.jndi.ldap.Connection.unpauseReader:()V
33: goto 35
StackMap locals:
StackMap stack: java.io.IOException
34: astore 6
35: StackMap locals:
StackMap stack:
iload 2
ifne 41
36: aload 0
getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
astore 6
start local 6 37: goto 40
38: StackMap locals: com.sun.jndi.ldap.Connection javax.naming.ldap.Control[] int int com.sun.jndi.ldap.Connection top com.sun.jndi.ldap.LdapRequest
StackMap stack:
aload 6
invokevirtual com.sun.jndi.ldap.LdapRequest.cancel:()V
39: aload 6
getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
astore 6
40: StackMap locals:
StackMap stack:
aload 6
ifnonnull 38
end local 6 41: StackMap locals: com.sun.jndi.ldap.Connection javax.naming.ldap.Control[] int int com.sun.jndi.ldap.Connection
StackMap stack:
aload 0
invokevirtual com.sun.jndi.ldap.Connection.isTlsConnection:()Z
ifeq 48
aload 0
getfield com.sun.jndi.ldap.Connection.tlsHandshakeListener:Lcom/sun/jndi/ldap/Connection$HandshakeListener;
ifnull 48
42: aload 0
getfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
ifnull 47
43: new javax.naming.CommunicationException
dup
invokespecial javax.naming.CommunicationException.<init>:()V
astore 6
start local 6 44: aload 6
aload 0
getfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
invokevirtual javax.naming.CommunicationException.setRootCause:(Ljava/lang/Throwable;)V
45: aload 0
getfield com.sun.jndi.ldap.Connection.tlsHandshakeListener:Lcom/sun/jndi/ldap/Connection$HandshakeListener;
getfield com.sun.jndi.ldap.Connection$HandshakeListener.tlsHandshakeCompleted:Ljava/util/concurrent/CompletableFuture;
aload 6
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
end local 6 46: goto 48
47: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jndi.ldap.Connection.tlsHandshakeListener:Lcom/sun/jndi/ldap/Connection$HandshakeListener;
getfield com.sun.jndi.ldap.Connection$HandshakeListener.tlsHandshakeCompleted:Ljava/util/concurrent/CompletableFuture;
iconst_0
invokevirtual java.util.concurrent.CompletableFuture.cancel:(Z)Z
pop
48: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
49: iload 2
istore 3
50: StackMap locals:
StackMap stack:
iload 3
ifeq 56
51: aload 0
getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
astore 5
start local 5 52: goto 55
53: StackMap locals: com.sun.jndi.ldap.LdapRequest
StackMap stack:
aload 5
invokevirtual com.sun.jndi.ldap.LdapRequest.close:()V
54: aload 5
getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
astore 5
55: StackMap locals:
StackMap stack:
aload 5
ifnonnull 53
end local 5 56: StackMap locals:
StackMap stack:
aload 4
monitorexit
57: goto 60
StackMap locals:
StackMap stack: java.lang.Throwable
58: aload 4
monitorexit
59: athrow
60: StackMap locals:
StackMap stack:
iload 3
ifeq 62
61: aload 0
getfield com.sun.jndi.ldap.Connection.parent:Lcom/sun/jndi/ldap/LdapClient;
invokevirtual com.sun.jndi.ldap.LdapClient.processConnectionClosure:()V
62: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 63 0 this Lcom/sun/jndi/ldap/Connection;
0 63 1 reqCtls [Ljavax/naming/ldap/Control;
0 63 2 notifyParent Z
1 63 3 nparent Z
17 21 6 ldr Lcom/sun/jndi/ldap/LdapRequest;
37 41 6 ldr Lcom/sun/jndi/ldap/LdapRequest;
24 26 6 ce Ljavax/naming/CommunicationException;
44 46 6 ce Ljavax/naming/CommunicationException;
52 56 5 ldr Lcom/sun/jndi/ldap/LdapRequest;
Exception table:
from to target type
4 9 9 any
10 13 14 Class java.io.IOException
30 33 34 Class java.io.IOException
2 57 58 any
58 59 58 any
MethodParameters:
Name Flags
reqCtls
notifyParent
public synchronized void replaceStreams(java.io.InputStream, java.io.OutputStream);
descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
putfield com.sun.jndi.ldap.Connection.inStream:Ljava/io/InputStream;
1: aload 0
getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
2: goto 4
StackMap locals:
StackMap stack: java.io.IOException
3: astore 3
4: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/jndi/ldap/Connection;
0 6 1 newIn Ljava/io/InputStream;
0 6 2 newOut Ljava/io/OutputStream;
Exception table:
from to target type
1 2 3 Class java.io.IOException
MethodParameters:
Name Flags
newIn
newOut
public synchronized void replaceStreams(java.io.InputStream, java.io.OutputStream, boolean);
descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;Z)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.sun.jndi.ldap.Connection.startTlsLock:Ljava/lang/Object;
dup
astore 4
monitorenter
1: aload 0
aload 1
aload 2
invokevirtual com.sun.jndi.ldap.Connection.replaceStreams:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
2: aload 0
iload 3
putfield com.sun.jndi.ldap.Connection.isUpgradedToStartTls:Z
3: aload 4
monitorexit
4: goto 7
StackMap locals: com.sun.jndi.ldap.Connection java.io.InputStream java.io.OutputStream int java.lang.Object
StackMap stack: java.lang.Throwable
5: aload 4
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/jndi/ldap/Connection;
0 8 1 newIn Ljava/io/InputStream;
0 8 2 newOut Ljava/io/OutputStream;
0 8 3 isStartTls Z
Exception table:
from to target type
1 4 5 any
5 6 5 any
MethodParameters:
Name Flags
newIn
newOut
isStartTls
public boolean isUpgradedToStartTls();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.jndi.ldap.Connection.isUpgradedToStartTls:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/jndi/ldap/Connection;
private synchronized java.io.InputStream getInputStream();
descriptor: ()Ljava/io/InputStream;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.jndi.ldap.Connection.inStream:Ljava/io/InputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/jndi/ldap/Connection;
private void unpauseReader();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.jndi.ldap.Connection.pauseLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield com.sun.jndi.ldap.Connection.paused:Z
ifeq 4
2: aload 0
iconst_0
putfield com.sun.jndi.ldap.Connection.paused:Z
3: aload 0
getfield com.sun.jndi.ldap.Connection.pauseLock:Ljava/lang/Object;
invokevirtual java.lang.Object.notify:()V
4: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/jndi/ldap/Connection;
Exception table:
from to target type
1 5 6 any
6 7 6 any
Exceptions:
throws java.io.IOException
private void pauseReader();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield com.sun.jndi.ldap.Connection.paused:Z
1: goto 3
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jndi.ldap.Connection.pauseLock:Ljava/lang/Object;
invokevirtual java.lang.Object.wait:()V
3: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jndi.ldap.Connection.paused:Z
ifne 2
4: goto 9
StackMap locals:
StackMap stack: java.lang.InterruptedException
5: pop
6: new java.io.InterruptedIOException
dup
7: ldc "Pause/unpause reader has problems."
8: invokespecial java.io.InterruptedIOException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/jndi/ldap/Connection;
Exception table:
from to target type
1 4 5 Class java.lang.InterruptedException
Exceptions:
throws java.io.IOException
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=16, args_size=1
start local 0 0: aconst_null
astore 10
start local 10 1: StackMap locals: com.sun.jndi.ldap.Connection top top top top top top top top top java.io.InputStream
StackMap stack:
sipush 129
newarray 8
astore 1
start local 1 2: iconst_0
istore 5
start local 5 3: iconst_0
istore 6
start local 6 4: iconst_0
istore 7
start local 7 5: aload 0
invokevirtual com.sun.jndi.ldap.Connection.getInputStream:()Ljava/io/InputStream;
astore 10
6: aload 10
aload 1
iload 5
iconst_1
invokevirtual java.io.InputStream.read:([BII)I
istore 3
start local 3 7: iload 3
ifge 10
8: aload 10
aload 0
invokevirtual com.sun.jndi.ldap.Connection.getInputStream:()Ljava/io/InputStream;
if_acmpeq 79
9: goto 1
10: StackMap locals: com.sun.jndi.ldap.Connection byte[] top int top int int int top top java.io.InputStream
StackMap stack:
aload 1
iload 5
iinc 5 1
baload
bipush 48
if_icmpeq 12
11: goto 1
12: StackMap locals:
StackMap stack:
aload 10
aload 1
iload 5
iconst_1
invokevirtual java.io.InputStream.read:([BII)I
istore 3
13: iload 3
ifge 15
14: goto 79
15: StackMap locals:
StackMap stack:
aload 1
iload 5
iinc 5 1
baload
istore 6
16: iload 6
sipush 128
iand
sipush 128
if_icmpne 40
17: iload 6
bipush 127
iand
istore 7
18: iload 7
iconst_4
if_icmple 20
19: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Length coded with too many bytes: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
iconst_0
istore 3
21: iconst_0
istore 8
start local 8 22: goto 30
23: StackMap locals: com.sun.jndi.ldap.Connection byte[] top int top int int int int top java.io.InputStream
StackMap stack:
aload 10
aload 1
iload 5
iload 3
iadd
24: iload 7
iload 3
isub
25: invokevirtual java.io.InputStream.read:([BII)I
istore 4
start local 4 26: iload 4
ifge 29
27: iconst_1
istore 8
28: goto 31
29: StackMap locals: com.sun.jndi.ldap.Connection byte[] top int int int int int int top java.io.InputStream
StackMap stack:
iload 3
iload 4
iadd
istore 3
end local 4 30: StackMap locals: com.sun.jndi.ldap.Connection byte[] top int top int int int int top java.io.InputStream
StackMap stack:
iload 3
iload 7
if_icmplt 23
31: StackMap locals:
StackMap stack:
iload 8
ifeq 33
32: goto 79
33: StackMap locals:
StackMap stack:
iconst_0
istore 6
34: iconst_0
istore 11
start local 11 35: goto 38
36: StackMap locals: int
StackMap stack:
iload 6
bipush 8
ishl
aload 1
iload 5
iload 11
iadd
baload
sipush 255
iand
iadd
istore 6
37: iinc 11 1
StackMap locals:
StackMap stack:
38: iload 11
iload 7
if_icmplt 36
end local 11 39: iload 5
iload 3
iadd
istore 5
end local 8 40: StackMap locals: com.sun.jndi.ldap.Connection byte[] top int top int int int top top java.io.InputStream
StackMap stack:
iload 7
iload 3
if_icmple 42
41: new java.io.IOException
dup
ldc "Unexpected EOF while reading length"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
42: StackMap locals:
StackMap stack:
iload 6
ifge 44
43: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Length too big: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
i2l
ldc 4294967295
land
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
44: StackMap locals:
StackMap stack:
aload 10
iload 6
invokestatic com.sun.jndi.ldap.Connection.readFully:(Ljava/io/InputStream;I)[B
astore 11
start local 11 45: aload 1
iload 5
aload 11
arraylength
iadd
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 1
46: aload 11
iconst_0
aload 1
iload 5
aload 11
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
47: iload 5
aload 11
arraylength
iadd
istore 5
48: new com.sun.jndi.ldap.BerDecoder
dup
aload 1
iconst_0
iload 5
invokespecial com.sun.jndi.ldap.BerDecoder.<init>:([BII)V
astore 9
start local 9 49: aload 0
getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
ifnull 51
50: aload 0
getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
aload 0
getfield com.sun.jndi.ldap.Connection.traceTagIn:Ljava/lang/String;
aload 1
iconst_0
iload 5
invokestatic com.sun.jndi.ldap.Ber.dumpBER:(Ljava/io/OutputStream;Ljava/lang/String;[BII)V
51: StackMap locals: com.sun.jndi.ldap.Connection byte[] top int top int int int top com.sun.jndi.ldap.BerDecoder java.io.InputStream byte[]
StackMap stack:
aload 9
aconst_null
invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
pop
52: aload 9
invokevirtual com.sun.jndi.ldap.BerDecoder.parseInt:()I
istore 2
start local 2 53: aload 9
invokevirtual com.sun.jndi.ldap.BerDecoder.reset:()V
54: iconst_0
istore 12
start local 12 55: iload 2
ifne 58
56: aload 0
getfield com.sun.jndi.ldap.Connection.parent:Lcom/sun/jndi/ldap/LdapClient;
aload 9
invokevirtual com.sun.jndi.ldap.LdapClient.processUnsolicited:(Lcom/sun/jndi/ldap/BerDecoder;)V
57: goto 1
58: StackMap locals: com.sun.jndi.ldap.Connection byte[] int int top int int int top com.sun.jndi.ldap.BerDecoder java.io.InputStream byte[] int
StackMap stack:
aload 0
iload 2
invokevirtual com.sun.jndi.ldap.Connection.findRequest:(I)Lcom/sun/jndi/ldap/LdapRequest;
astore 13
start local 13 59: aload 13
ifnull 1
60: aload 0
getfield com.sun.jndi.ldap.Connection.pauseLock:Ljava/lang/Object;
dup
astore 14
monitorenter
61: aload 13
aload 9
invokevirtual com.sun.jndi.ldap.LdapRequest.addReplyBer:(Lcom/sun/jndi/ldap/BerDecoder;)Z
istore 12
62: iload 12
ifeq 64
63: aload 0
invokevirtual com.sun.jndi.ldap.Connection.pauseReader:()V
64: StackMap locals: com.sun.jndi.ldap.LdapRequest java.lang.Object
StackMap stack:
aload 14
monitorexit
65: goto 1
StackMap locals:
StackMap stack: java.lang.Throwable
66: aload 14
monitorexit
67: athrow
end local 13 end local 12 end local 9 end local 2 68: StackMap locals: com.sun.jndi.ldap.Connection byte[] top int top int int int top top java.io.InputStream byte[]
StackMap stack: com.sun.jndi.ldap.Ber$DecodeException
pop
end local 11 69: goto 1
end local 7 end local 6 end local 5 end local 3 end local 1 StackMap locals: com.sun.jndi.ldap.Connection top top top top top top top top top java.io.InputStream
StackMap stack: java.io.IOException
70: astore 11
start local 11 71: aload 10
aload 0
invokevirtual com.sun.jndi.ldap.Connection.getInputStream:()Ljava/io/InputStream;
if_acmpne 1
72: aload 11
athrow
end local 11 73: StackMap locals:
StackMap stack: java.io.IOException
astore 11
start local 11 74: aload 0
aload 11
putfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
end local 11 75: aload 0
aconst_null
iconst_1
invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
goto 80
76: StackMap locals:
StackMap stack: java.lang.Throwable
astore 15
77: aload 0
aconst_null
iconst_1
invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
78: aload 15
athrow
79: StackMap locals:
StackMap stack:
aload 0
aconst_null
iconst_1
invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
80: StackMap locals:
StackMap stack:
return
end local 10 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 81 0 this Lcom/sun/jndi/ldap/Connection;
2 70 1 inbuf [B
53 68 2 inMsgId I
7 70 3 bytesread I
26 30 4 br I
3 70 5 offset I
4 70 6 seqlen I
5 70 7 seqlenlen I
22 40 8 eos Z
49 68 9 retBer Lcom/sun/jndi/ldap/BerDecoder;
1 81 10 in Ljava/io/InputStream;
35 39 11 i I
45 69 11 left [B
55 68 12 needPause Z
59 68 13 ldr Lcom/sun/jndi/ldap/LdapRequest;
71 73 11 ie Ljava/io/IOException;
74 75 11 ex Ljava/io/IOException;
Exception table:
from to target type
61 65 66 any
66 67 66 any
48 68 68 Class com.sun.jndi.ldap.Ber$DecodeException
1 9 70 Class java.io.IOException
10 11 70 Class java.io.IOException
12 14 70 Class java.io.IOException
15 32 70 Class java.io.IOException
33 69 70 Class java.io.IOException
1 73 73 Class java.io.IOException
1 75 76 any
private static byte[] readFully(java.io.InputStream, int);
descriptor: (Ljava/io/InputStream;I)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: iload 1
sipush 8192
invokestatic java.lang.Math.min:(II)I
newarray 8
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 15
3: StackMap locals: byte[] int
StackMap stack:
iload 3
aload 2
arraylength
if_icmplt 8
4: iload 1
iload 3
isub
aload 2
arraylength
sipush 8192
iadd
invokestatic java.lang.Math.min:(II)I
istore 4
start local 4 5: aload 2
arraylength
iload 3
iload 4
iadd
if_icmpge 9
6: aload 2
iload 3
iload 4
iadd
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 2
7: goto 9
end local 4 8: StackMap locals:
StackMap stack:
aload 2
arraylength
iload 3
isub
istore 4
start local 4 9: StackMap locals: int
StackMap stack:
aload 0
aload 2
iload 3
iload 4
invokevirtual java.io.InputStream.read:([BII)I
istore 5
start local 5 10: iload 5
ifge 14
11: aload 2
arraylength
iload 3
if_icmpeq 16
12: aload 2
iload 3
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 2
13: goto 16
14: StackMap locals: int
StackMap stack:
iload 3
iload 5
iadd
istore 3
end local 5 end local 4 15: StackMap locals:
StackMap stack:
iload 3
iload 1
if_icmplt 3
16: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 is Ljava/io/InputStream;
0 17 1 length I
1 17 2 buf [B
2 17 3 nread I
5 8 4 bytesToRead I
9 15 4 bytesToRead I
10 15 5 count I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
is
length
public boolean isTlsConnection();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
instanceof javax.net.ssl.SSLSocket
ifne 1
aload 0
getfield com.sun.jndi.ldap.Connection.isUpgradedToStartTls:Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/jndi/ldap/Connection;
public synchronized void setHandshakeCompletedListener(javax.net.ssl.SSLSocket);
descriptor: (Ljavax/net/ssl/SSLSocket;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.jndi.ldap.Connection.tlsHandshakeListener:Lcom/sun/jndi/ldap/Connection$HandshakeListener;
ifnull 2
1: aload 0
getfield com.sun.jndi.ldap.Connection.tlsHandshakeListener:Lcom/sun/jndi/ldap/Connection$HandshakeListener;
getfield com.sun.jndi.ldap.Connection$HandshakeListener.tlsHandshakeCompleted:Ljava/util/concurrent/CompletableFuture;
iconst_0
invokevirtual java.util.concurrent.CompletableFuture.cancel:(Z)Z
pop
2: StackMap locals:
StackMap stack:
aload 0
new com.sun.jndi.ldap.Connection$HandshakeListener
dup
aload 0
invokespecial com.sun.jndi.ldap.Connection$HandshakeListener.<init>:(Lcom/sun/jndi/ldap/Connection;)V
putfield com.sun.jndi.ldap.Connection.tlsHandshakeListener:Lcom/sun/jndi/ldap/Connection$HandshakeListener;
3: aload 1
aload 0
getfield com.sun.jndi.ldap.Connection.tlsHandshakeListener:Lcom/sun/jndi/ldap/Connection$HandshakeListener;
invokevirtual javax.net.ssl.SSLSocket.addHandshakeCompletedListener:(Ljavax/net/ssl/HandshakeCompletedListener;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/jndi/ldap/Connection;
0 5 1 sslSocket Ljavax/net/ssl/SSLSocket;
MethodParameters:
Name Flags
sslSocket
public java.security.cert.X509Certificate getTlsServerCertificate();
descriptor: ()Ljava/security/cert/X509Certificate;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.jndi.ldap.Connection.isTlsConnection:()Z
ifeq 7
aload 0
getfield com.sun.jndi.ldap.Connection.tlsHandshakeListener:Lcom/sun/jndi/ldap/Connection$HandshakeListener;
ifnull 7
1: aload 0
getfield com.sun.jndi.ldap.Connection.tlsHandshakeListener:Lcom/sun/jndi/ldap/Connection$HandshakeListener;
getfield com.sun.jndi.ldap.Connection$HandshakeListener.tlsHandshakeCompleted:Ljava/util/concurrent/CompletableFuture;
invokevirtual java.util.concurrent.CompletableFuture.get:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
2: areturn
3: StackMap locals:
StackMap stack: java.lang.InterruptedException
astore 1
start local 1 4: new javax.security.sasl.SaslException
dup
ldc "TLS Handshake Exception "
aload 1
invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 5: StackMap locals:
StackMap stack: java.util.concurrent.ExecutionException
astore 1
start local 1 6: new javax.security.sasl.SaslException
dup
ldc "TLS Handshake Exception "
aload 1
invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 7: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/jndi/ldap/Connection;
4 5 1 iex Ljava/lang/InterruptedException;
6 7 1 eex Ljava/util/concurrent/ExecutionException;
Exception table:
from to target type
0 2 3 Class java.lang.InterruptedException
0 2 5 Class java.util.concurrent.ExecutionException
Exceptions:
throws javax.security.sasl.SaslException
private static java.lang.String lambda$0();
descriptor: ()Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=0, args_size=0
0: ldc "com.sun.jndi.ldap.object.disableEndpointIdentification"
1: invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
2: areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "Connection.java"
NestMembers:
com.sun.jndi.ldap.Connection$HandshakeListener
InnerClasses:
final DecodeException = com.sun.jndi.ldap.Ber$DecodeException of com.sun.jndi.ldap.Ber
private HandshakeListener = com.sun.jndi.ldap.Connection$HandshakeListener of com.sun.jndi.ldap.Connection
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles