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
private int readTimeout;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final boolean IS_HOSTNAME_VERIFICATION_DISABLED;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.lang.Object pauseLock;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private boolean paused;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
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=2, locals=2, args_size=0
0: new com.sun.jndi.ldap.Connection$1
dup
invokespecial com.sun.jndi.ldap.Connection$1.<init>:()V
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.pauseLock:Ljava/lang/Object;
11: aload 0
iconst_0
putfield com.sun.jndi.ldap.Connection.paused:Z
12: aload 0
aload 2
putfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
13: aload 0
iload 3
putfield com.sun.jndi.ldap.Connection.port:I
14: aload 0
aload 1
putfield com.sun.jndi.ldap.Connection.parent:Lcom/sun/jndi/ldap/LdapClient;
15: aload 0
iload 6
putfield com.sun.jndi.ldap.Connection.readTimeout:I
16: aload 7
ifnull 20
17: aload 0
aload 7
putfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
18: 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;
19: 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;
20: 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;
21: 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;
22: 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;
23: goto 35
StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
24: astore 8
start local 8 25: aload 8
invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
astore 9
start local 9 26: 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
27: astore 10
start local 10 28: aload 10
aload 9
invokevirtual javax.naming.CommunicationException.setRootCause:(Ljava/lang/Throwable;)V
29: aload 10
athrow
end local 10 end local 9 end local 8 30: StackMap locals:
StackMap stack: java.lang.Exception
astore 8
start local 8 31: 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
32: astore 9
start local 9 33: aload 9
aload 8
invokevirtual javax.naming.CommunicationException.setRootCause:(Ljava/lang/Throwable;)V
34: aload 9
athrow
end local 9 end local 8 35: 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;
36: aload 0
getfield com.sun.jndi.ldap.Connection.worker:Ljava/lang/Thread;
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
37: aload 0
getfield com.sun.jndi.ldap.Connection.worker:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
38: 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 39 0 this Lcom/sun/jndi/ldap/Connection;
0 39 1 parent Lcom/sun/jndi/ldap/LdapClient;
0 39 2 host Ljava/lang/String;
0 39 3 port I
0 39 4 socketFactory Ljava/lang/String;
0 39 5 connectTimeout I
0 39 6 readTimeout I
0 39 7 trace Ljava/io/OutputStream;
25 30 8 e Ljava/lang/reflect/InvocationTargetException;
26 30 9 realException Ljava/lang/Throwable;
28 30 10 ce Ljavax/naming/CommunicationException;
31 35 8 e Ljava/lang/Exception;
33 35 9 ce Ljavax/naming/CommunicationException;
Exception table:
from to target type
20 23 24 Class java.lang.reflect.InvocationTargetException
20 23 30 Class java.lang.Exception
Exceptions:
throws javax.naming.NamingException
MethodParameters:
Name Flags
parent
host
port
socketFactory
connectTimeout
readTimeout
trace
private java.lang.Object createInetSocketAddress(java.lang.String, int);
descriptor: (Ljava/lang/String;I)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: ldc "java.net.InetSocketAddress"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
1: astore 3
start local 3 2: aload 3
iconst_2
anewarray java.lang.Class
dup
iconst_0
3: ldc Ljava/lang/String;
aastore
dup
iconst_1
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
4: invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
5: astore 4
start local 4 6: aload 4
iconst_2
anewarray java.lang.Object
dup
iconst_0
7: aload 1
aastore
dup
iconst_1
new java.lang.Integer
dup
iload 2
invokespecial java.lang.Integer.<init>:(I)V
aastore
8: invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
9: areturn
end local 4 end local 3 10: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
11: new java.lang.NoSuchMethodException
dup
invokespecial java.lang.NoSuchMethodException.<init>:()V
athrow
12: StackMap locals:
StackMap stack: java.lang.InstantiationException
pop
13: new java.lang.NoSuchMethodException
dup
invokespecial java.lang.NoSuchMethodException.<init>:()V
athrow
14: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
pop
15: new java.lang.NoSuchMethodException
dup
invokespecial java.lang.NoSuchMethodException.<init>:()V
athrow
16: StackMap locals:
StackMap stack: java.lang.IllegalAccessException
pop
17: new java.lang.NoSuchMethodException
dup
invokespecial java.lang.NoSuchMethodException.<init>:()V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/sun/jndi/ldap/Connection;
0 18 1 host Ljava/lang/String;
0 18 2 port I
2 10 3 inetSocketAddressClass Ljava/lang/Class;
6 10 4 inetSocketAddressCons Ljava/lang/reflect/Constructor;
Exception table:
from to target type
0 9 10 Class java.lang.ClassNotFoundException
0 9 12 Class java.lang.InstantiationException
0 9 14 Class java.lang.reflect.InvocationTargetException
0 9 16 Class java.lang.IllegalAccessException
Exceptions:
throws java.lang.NoSuchMethodException
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=8, locals=12, 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 31
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;
astore 6
start local 6 3: 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;
4: astore 7
start local 7 5: 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;
astore 8
start local 8 6: aconst_null
astore 9
start local 9 7: iload 4
ifle 23
8: aload 6
ldc "createSocket"
9: iconst_0
anewarray java.lang.Class
10: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 9
11: ldc Ljava/net/Socket;
ldc "connect"
12: iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc "java.net.SocketAddress"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
aastore
dup
iconst_1
13: getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
14: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 10
start local 10 15: aload 0
aload 1
iload 2
invokevirtual com.sun.jndi.ldap.Connection.createInetSocketAddress:(Ljava/lang/String;I)Ljava/lang/Object;
astore 11
start local 11 16: aload 9
aload 8
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.net.Socket
17: astore 5
18: aload 10
aload 5
iconst_2
anewarray java.lang.Object
dup
iconst_0
19: aload 11
aastore
dup
iconst_1
new java.lang.Integer
dup
iload 4
invokespecial java.lang.Integer.<init>:(I)V
aastore
20: invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 11 end local 10 21: goto 23
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 java.lang.Object java.lang.reflect.Method
StackMap stack: java.lang.NoSuchMethodException
22: pop
23: StackMap locals:
StackMap stack:
aload 5
ifnonnull 47
24: aload 6
ldc "createSocket"
25: iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/String;
aastore
dup
iconst_1
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
26: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 9
27: aload 9
aload 8
28: iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
new java.lang.Integer
dup
iload 2
invokespecial java.lang.Integer.<init>:(I)V
aastore
29: invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.net.Socket
astore 5
end local 9 end local 8 end local 7 end local 6 30: goto 47
31: StackMap locals: com.sun.jndi.ldap.Connection java.lang.String int java.lang.String int java.net.Socket
StackMap stack:
iload 4
ifle 45
32: ldc Ljava/net/Socket;
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
33: astore 6
start local 6 34: ldc Ljava/net/Socket;
ldc "connect"
35: iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc "java.net.SocketAddress"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
aastore
dup
iconst_1
36: getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
37: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 7
start local 7 38: aload 0
aload 1
iload 2
invokevirtual com.sun.jndi.ldap.Connection.createInetSocketAddress:(Ljava/lang/String;I)Ljava/lang/Object;
astore 8
start local 8 39: aload 6
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.net.Socket
astore 5
40: aload 7
aload 5
iconst_2
anewarray java.lang.Object
dup
iconst_0
41: aload 8
aastore
dup
iconst_1
new java.lang.Integer
dup
iload 4
invokespecial java.lang.Integer.<init>:(I)V
aastore
42: invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 8 end local 7 end local 6 43: goto 45
StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
44: pop
45: StackMap locals:
StackMap stack:
aload 5
ifnonnull 47
46: new java.net.Socket
dup
aload 1
iload 2
invokespecial java.net.Socket.<init>:(Ljava/lang/String;I)V
astore 5
47: StackMap locals:
StackMap stack:
getstatic com.sun.jndi.ldap.Connection.IS_HOSTNAME_VERIFICATION_DISABLED:Z
ifne 50
48: aload 5
instanceof sun.security.ssl.SSLSocketImpl
ifeq 50
49: aload 5
checkcast sun.security.ssl.SSLSocketImpl
ldc "LDAPS"
invokevirtual sun.security.ssl.SSLSocketImpl.trySetHostnameVerification:(Ljava/lang/String;)Z
istore 6
50: 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 51 0 this Lcom/sun/jndi/ldap/Connection;
0 51 1 host Ljava/lang/String;
0 51 2 port I
0 51 3 socketFactory Ljava/lang/String;
0 51 4 connectTimeout I
1 51 5 socket Ljava/net/Socket;
3 30 6 socketFactoryClass Ljava/lang/Class;
5 30 7 getDefault Ljava/lang/reflect/Method;
6 30 8 factory Ljava/lang/Object;
7 30 9 createSocket Ljava/lang/reflect/Method;
15 21 10 connect Ljava/lang/reflect/Method;
16 21 11 endpoint Ljava/lang/Object;
34 43 6 socketCons Ljava/lang/reflect/Constructor;
38 43 7 connect Ljava/lang/reflect/Method;
39 43 8 endpoint Ljava/lang/Object;
Exception table:
from to target type
8 21 22 Class java.lang.NoSuchMethodException
32 43 44 Class java.lang.NoSuchMethodException
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=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
iconst_0
invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;IZ)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=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new com.sun.jndi.ldap.LdapRequest
dup
iload 2
iload 3
invokespecial com.sun.jndi.ldap.LdapRequest.<init>:(IZ)V
astore 4
start local 4 1: aload 0
aload 4
invokevirtual com.sun.jndi.ldap.Connection.addRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
2: aload 0
getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
ifnull 4
3: 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
4: StackMap locals: com.sun.jndi.ldap.LdapRequest
StackMap stack:
aload 0
invokevirtual com.sun.jndi.ldap.Connection.unpauseReader:()V
5: aload 0
dup
astore 5
monitorenter
6: 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
7: aload 0
getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
8: aload 5
monitorexit
9: goto 15
StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.BerEncoder int int com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.Connection
StackMap stack: java.lang.Throwable
10: aload 5
monitorexit
11: athrow
12: StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.BerEncoder int int com.sun.jndi.ldap.LdapRequest
StackMap stack: java.io.IOException
astore 5
start local 5 13: aload 0
aconst_null
iconst_1
invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
14: aload 0
aload 5
dup_x1
putfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
athrow
end local 5 15: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/sun/jndi/ldap/Connection;
0 16 1 ber Lcom/sun/jndi/ldap/BerEncoder;
0 16 2 msgId I
0 16 3 pauseAfterReceipt Z
1 16 4 req Lcom/sun/jndi/ldap/LdapRequest;
13 15 5 e Ljava/io/IOException;
Exception table:
from to target type
6 9 10 any
10 11 10 any
5 12 12 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
ber
msgId
pauseAfterReceipt
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: iconst_0
istore 3
start local 3 1: goto 30
start local 2 2: StackMap locals: com.sun.jndi.ldap.BerDecoder int
StackMap stack:
aload 0
dup
astore 4
monitorenter
3: aload 0
getfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
ifnonnull 7
4: 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;
5: ldc "; socket closed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial javax.naming.ServiceUnavailableException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: com.sun.jndi.ldap.Connection
StackMap stack:
aload 4
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 4
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 1
dup
astore 4
monitorenter
12: aload 1
invokevirtual com.sun.jndi.ldap.LdapRequest.getReplyBer:()Lcom/sun/jndi/ldap/BerDecoder;
astore 2
13: aload 2
ifnonnull 20
14: aload 0
getfield com.sun.jndi.ldap.Connection.readTimeout:I
ifle 18
15: aload 1
aload 0
getfield com.sun.jndi.ldap.Connection.readTimeout:I
i2l
invokevirtual java.lang.Object.wait:(J)V
16: iconst_1
istore 3
17: goto 22
18: StackMap locals: com.sun.jndi.ldap.LdapRequest
StackMap stack:
aload 1
ldc 15000
invokevirtual java.lang.Object.wait:(J)V
19: goto 22
20: StackMap locals:
StackMap stack:
aload 4
monitorexit
21: goto 32
22: StackMap locals:
StackMap stack:
aload 4
monitorexit
23: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
24: aload 4
monitorexit
25: athrow
26: StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.BerDecoder int
StackMap stack: java.lang.InterruptedException
pop
27: new javax.naming.InterruptedNamingException
dup
28: ldc "Interrupted during LDAP operation"
29: invokespecial javax.naming.InterruptedNamingException.<init>:(Ljava/lang/String;)V
athrow
end local 2 30: StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest top int
StackMap stack:
aload 1
invokevirtual com.sun.jndi.ldap.LdapRequest.getReplyBer:()Lcom/sun/jndi/ldap/BerDecoder;
dup
astore 2
start local 2 31: ifnonnull 32
iload 3
ifeq 2
32: StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.BerDecoder int
StackMap stack:
aload 2
ifnonnull 37
iload 3
ifeq 37
33: aload 0
aload 1
invokevirtual com.sun.jndi.ldap.Connection.removeRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
34: new javax.naming.NamingException
dup
new java.lang.StringBuilder
dup
ldc "LDAP response read timed out, timeout used:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
35: aload 0
getfield com.sun.jndi.ldap.Connection.readTimeout:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "ms."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
36: invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
athrow
37: 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 38 0 this Lcom/sun/jndi/ldap/Connection;
0 38 1 ldr Lcom/sun/jndi/ldap/LdapRequest;
2 30 2 rber Lcom/sun/jndi/ldap/BerDecoder;
31 38 2 rber Lcom/sun/jndi/ldap/BerDecoder;
1 38 3 waited Z
Exception table:
from to target type
3 8 9 any
9 10 9 any
12 21 24 any
22 23 24 any
24 25 24 any
2 21 26 Class java.lang.InterruptedException
22 26 26 Class java.lang.InterruptedException
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 36
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 23
7: aload 0
aload 1
invokevirtual com.sun.jndi.ldap.Connection.ldapUnbind:([Ljavax/naming/ldap/Control;)V
8: goto 23
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
aconst_null
putfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
22: aload 5
athrow
23: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
24: aload 0
getfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
invokevirtual java.net.Socket.close:()V
25: aload 0
invokevirtual com.sun.jndi.ldap.Connection.unpauseReader:()V
26: goto 28
StackMap locals:
StackMap stack: java.io.IOException
27: astore 6
28: StackMap locals:
StackMap stack:
iload 2
ifne 34
29: aload 0
getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
astore 6
start local 6 30: goto 33
31: 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
32: aload 6
getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
astore 6
33: StackMap locals:
StackMap stack:
aload 6
ifnonnull 31
end local 6 34: StackMap locals: com.sun.jndi.ldap.Connection javax.naming.ldap.Control[] int int com.sun.jndi.ldap.Connection
StackMap stack:
aload 0
aconst_null
putfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
35: iload 2
istore 3
36: StackMap locals:
StackMap stack:
aload 4
monitorexit
37: goto 40
StackMap locals:
StackMap stack: java.lang.Throwable
38: aload 4
monitorexit
39: athrow
40: StackMap locals:
StackMap stack:
iload 3
ifeq 42
41: aload 0
getfield com.sun.jndi.ldap.Connection.parent:Lcom/sun/jndi/ldap/LdapClient;
invokevirtual com.sun.jndi.ldap.LdapClient.processConnectionClosure:()V
42: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lcom/sun/jndi/ldap/Connection;
0 43 1 reqCtls [Ljavax/naming/ldap/Control;
0 43 2 notifyParent Z
1 43 3 nparent Z
17 21 6 ldr Lcom/sun/jndi/ldap/LdapRequest;
30 34 6 ldr Lcom/sun/jndi/ldap/LdapRequest;
Exception table:
from to target type
4 9 9 any
10 13 14 Class java.io.IOException
23 26 27 Class java.io.IOException
2 37 38 any
38 39 38 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
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=5, 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:
bipush 10
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 73
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 73
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 38
17: iload 6
bipush 127
iand
istore 7
18: iconst_0
istore 3
19: iconst_0
istore 8
start local 8 20: goto 28
21: 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
22: iload 7
iload 3
isub
23: invokevirtual java.io.InputStream.read:([BII)I
istore 4
start local 4 24: iload 4
ifge 27
25: iconst_1
istore 8
26: goto 29
27: 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 28: 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 21
29: StackMap locals:
StackMap stack:
iload 8
ifeq 31
30: goto 73
31: StackMap locals:
StackMap stack:
iconst_0
istore 6
32: iconst_0
istore 11
start local 11 33: goto 36
34: StackMap locals: int
StackMap stack:
iload 6
bipush 8
ishl
aload 1
iload 5
iload 11
iadd
baload
sipush 255
iand
iadd
istore 6
35: iinc 11 1
StackMap locals:
StackMap stack:
36: iload 11
iload 7
if_icmplt 34
end local 11 37: iload 5
iload 3
iadd
istore 5
end local 8 38: StackMap locals: com.sun.jndi.ldap.Connection byte[] top int top int int int top top java.io.InputStream
StackMap stack:
aload 10
iload 6
iconst_0
invokestatic sun.misc.IOUtils.readFully:(Ljava/io/InputStream;IZ)[B
astore 11
start local 11 39: aload 1
iload 5
aload 11
arraylength
iadd
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 1
40: aload 11
iconst_0
aload 1
iload 5
aload 11
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
41: iload 5
aload 11
arraylength
iadd
istore 5
42: 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 43: aload 0
getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
ifnull 45
44: 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
45: 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
46: aload 9
invokevirtual com.sun.jndi.ldap.BerDecoder.parseInt:()I
istore 2
start local 2 47: aload 9
invokevirtual com.sun.jndi.ldap.BerDecoder.reset:()V
48: iconst_0
istore 12
start local 12 49: iload 2
ifne 52
50: 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
51: goto 1
52: 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 53: aload 13
ifnull 1
54: aload 0
getfield com.sun.jndi.ldap.Connection.pauseLock:Ljava/lang/Object;
dup
astore 14
monitorenter
55: aload 13
aload 9
invokevirtual com.sun.jndi.ldap.LdapRequest.addReplyBer:(Lcom/sun/jndi/ldap/BerDecoder;)Z
istore 12
56: iload 12
ifeq 58
57: aload 0
invokevirtual com.sun.jndi.ldap.Connection.pauseReader:()V
58: StackMap locals: com.sun.jndi.ldap.LdapRequest java.lang.Object
StackMap stack:
aload 14
monitorexit
59: goto 1
StackMap locals:
StackMap stack: java.lang.Throwable
60: aload 14
monitorexit
61: athrow
end local 13 end local 12 end local 9 end local 2 62: 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 63: 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
64: astore 11
start local 11 65: aload 10
aload 0
invokevirtual com.sun.jndi.ldap.Connection.getInputStream:()Ljava/io/InputStream;
if_acmpne 1
66: aload 11
athrow
end local 11 67: StackMap locals:
StackMap stack: java.io.IOException
astore 11
start local 11 68: aload 0
aload 11
putfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
end local 11 69: aload 0
aconst_null
iconst_1
invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
goto 74
70: StackMap locals:
StackMap stack: java.lang.Throwable
astore 15
71: aload 0
aconst_null
iconst_1
invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
72: aload 15
athrow
73: StackMap locals:
StackMap stack:
aload 0
aconst_null
iconst_1
invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
74: StackMap locals:
StackMap stack:
return
end local 10 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 75 0 this Lcom/sun/jndi/ldap/Connection;
2 64 1 inbuf [B
47 62 2 inMsgId I
7 64 3 bytesread I
24 28 4 br I
3 64 5 offset I
4 64 6 seqlen I
5 64 7 seqlenlen I
20 38 8 eos Z
43 62 9 retBer Lcom/sun/jndi/ldap/BerDecoder;
1 75 10 in Ljava/io/InputStream;
33 37 11 i I
39 63 11 left [B
49 62 12 needPause Z
53 62 13 ldr Lcom/sun/jndi/ldap/LdapRequest;
65 67 11 ie Ljava/io/IOException;
68 69 11 ex Ljava/io/IOException;
Exception table:
from to target type
55 59 60 any
60 61 60 any
42 62 62 Class com.sun.jndi.ldap.Ber$DecodeException
1 9 64 Class java.io.IOException
10 11 64 Class java.io.IOException
12 14 64 Class java.io.IOException
15 30 64 Class java.io.IOException
31 63 64 Class java.io.IOException
1 67 67 Class java.io.IOException
1 69 70 any
}
SourceFile: "Connection.java"
NestMembers:
com.sun.jndi.ldap.Connection$1
InnerClasses:
final DecodeException = com.sun.jndi.ldap.Ber$DecodeException of com.sun.jndi.ldap.Ber
com.sun.jndi.ldap.Connection$1