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 java.lang.Object pauseLock;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private boolean paused;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
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 0
iload 5
putfield com.sun.jndi.ldap.Connection.connectTimeout:I
17: aload 7
ifnull 21
18: aload 0
aload 7
putfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
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.traceTagIn:Ljava/lang/String;
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.traceTagOut:Ljava/lang/String;
21: 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;
22: 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;
23: 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;
24: goto 36
StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
25: astore 8
start local 8 26: aload 8
invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
astore 9
start local 9 27: 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
28: astore 10
start local 10 29: aload 10
aload 9
invokevirtual javax.naming.CommunicationException.setRootCause:(Ljava/lang/Throwable;)V
30: aload 10
athrow
end local 10 end local 9 end local 8 31: StackMap locals:
StackMap stack: java.lang.Exception
astore 8
start local 8 32: 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
33: astore 9
start local 9 34: aload 9
aload 8
invokevirtual javax.naming.CommunicationException.setRootCause:(Ljava/lang/Throwable;)V
35: aload 9
athrow
end local 9 end local 8 36: 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;
37: aload 0
getfield com.sun.jndi.ldap.Connection.worker:Ljava/lang/Thread;
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
38: aload 0
getfield com.sun.jndi.ldap.Connection.worker:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
39: 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 40 0 this Lcom/sun/jndi/ldap/Connection;
0 40 1 parent Lcom/sun/jndi/ldap/LdapClient;
0 40 2 host Ljava/lang/String;
0 40 3 port I
0 40 4 socketFactory Ljava/lang/String;
0 40 5 connectTimeout I
0 40 6 readTimeout I
0 40 7 trace Ljava/io/OutputStream;
26 31 8 e Ljava/lang/reflect/InvocationTargetException;
27 31 9 realException Ljava/lang/Throwable;
29 31 10 ce Ljavax/naming/CommunicationException;
32 36 8 e Ljava/lang/Exception;
34 36 9 ce Ljavax/naming/CommunicationException;
Exception table:
from to target type
21 24 25 Class java.lang.reflect.InvocationTargetException
21 24 31 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:
iload 4
ifle 27
aload 5
instanceof javax.net.ssl.SSLSocket
ifeq 27
22: aload 5
checkcast javax.net.ssl.SSLSocket
astore 6
start local 6 23: aload 6
invokevirtual javax.net.ssl.SSLSocket.getSoTimeout:()I
istore 7
start local 7 24: aload 6
iload 4
invokevirtual javax.net.ssl.SSLSocket.setSoTimeout:(I)V
25: aload 6
invokevirtual javax.net.ssl.SSLSocket.startHandshake:()V
26: aload 6
iload 7
invokevirtual javax.net.ssl.SSLSocket.setSoTimeout:(I)V
end local 7 end local 6 27: 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 28 0 this Lcom/sun/jndi/ldap/Connection;
0 28 1 host Ljava/lang/String;
0 28 2 port I
0 28 3 socketFactory Ljava/lang/String;
0 28 4 connectTimeout I
1 28 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 27 6 sslSocket Ljavax/net/ssl/SSLSocket;
24 27 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=6, locals=10, args_size=2
start local 0 start local 1 0: lconst_0
lstore 3
start local 3 1: lconst_0
lstore 5
start local 5 2: goto 34
start local 2 3: StackMap locals: com.sun.jndi.ldap.BerDecoder long long
StackMap stack:
aload 0
dup
astore 7
monitorenter
4: aload 0
getfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
ifnonnull 8
5: 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;
6: ldc "; socket closed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial javax.naming.ServiceUnavailableException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: com.sun.jndi.ldap.Connection
StackMap stack:
aload 7
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 7
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
aload 1
dup
astore 7
monitorenter
13: aload 1
invokevirtual com.sun.jndi.ldap.LdapRequest.getReplyBer:()Lcom/sun/jndi/ldap/BerDecoder;
astore 2
14: aload 2
ifnonnull 24
15: aload 0
getfield com.sun.jndi.ldap.Connection.readTimeout:I
ifle 22
16: invokestatic java.lang.System.nanoTime:()J
lstore 8
start local 8 17: aload 1
aload 0
getfield com.sun.jndi.ldap.Connection.readTimeout:I
i2l
lload 3
lsub
invokevirtual java.lang.Object.wait:(J)V
18: lload 5
invokestatic java.lang.System.nanoTime:()J
lload 8
lsub
ladd
lstore 5
19: lload 3
lload 5
ldc 1000000
ldiv
ladd
lstore 3
20: lload 5
ldc 1000000
lrem
lstore 5
end local 8 21: goto 26
22: StackMap locals: com.sun.jndi.ldap.LdapRequest
StackMap stack:
aload 1
invokevirtual java.lang.Object.wait:()V
23: goto 26
24: StackMap locals:
StackMap stack:
aload 7
monitorexit
25: goto 38
26: StackMap locals:
StackMap stack:
aload 7
monitorexit
27: goto 34
StackMap locals:
StackMap stack: java.lang.Throwable
28: aload 7
monitorexit
29: athrow
30: StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.BerDecoder long long
StackMap stack: java.lang.InterruptedException
pop
31: new javax.naming.InterruptedNamingException
dup
32: ldc "Interrupted during LDAP operation"
33: invokespecial javax.naming.InterruptedNamingException.<init>:(Ljava/lang/String;)V
athrow
end local 2 34: StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest top long long
StackMap stack:
aload 1
invokevirtual com.sun.jndi.ldap.LdapRequest.getReplyBer:()Lcom/sun/jndi/ldap/BerDecoder;
dup
astore 2
start local 2 35: ifnonnull 38
36: aload 0
getfield com.sun.jndi.ldap.Connection.readTimeout:I
ifle 3
lload 3
aload 0
getfield com.sun.jndi.ldap.Connection.readTimeout:I
i2l
37: lcmp
iflt 3
38: StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.BerDecoder long long
StackMap stack:
aload 2
ifnonnull 43
lload 3
aload 0
getfield com.sun.jndi.ldap.Connection.readTimeout:I
i2l
lcmp
iflt 43
39: aload 0
aload 1
aconst_null
invokevirtual com.sun.jndi.ldap.Connection.abandonRequest:(Lcom/sun/jndi/ldap/LdapRequest;[Ljavax/naming/ldap/Control;)V
40: 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
41: 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;
42: invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
athrow
43: StackMap locals:
StackMap stack:
aload 2
areturn
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lcom/sun/jndi/ldap/Connection;
0 44 1 ldr Lcom/sun/jndi/ldap/LdapRequest;
3 34 2 rber Lcom/sun/jndi/ldap/BerDecoder;
35 44 2 rber Lcom/sun/jndi/ldap/BerDecoder;
1 44 3 elapsedMilli J
2 44 5 elapsedNano J
17 21 8 beginNano J
Exception table:
from to target type
4 9 10 any
10 11 10 any
13 25 28 any
26 27 28 any
28 29 28 any
3 25 30 Class java.lang.InterruptedException
26 30 30 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:
iload 3
ifeq 47
37: aload 0
getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
astore 5
start local 5 38: goto 46
39: StackMap locals: com.sun.jndi.ldap.LdapRequest
StackMap stack:
aload 5
dup
astore 6
monitorenter
40: aload 5
invokevirtual java.lang.Object.notify:()V
41: aload 5
getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
astore 5
42: aload 6
monitorexit
43: goto 46
StackMap locals: com.sun.jndi.ldap.Connection javax.naming.ldap.Control[] int int com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.LdapRequest
StackMap stack: java.lang.Throwable
44: aload 6
monitorexit
45: athrow
46: StackMap locals:
StackMap stack:
aload 5
ifnonnull 39
end local 5 47: StackMap locals:
StackMap stack:
aload 4
monitorexit
48: goto 51
StackMap locals:
StackMap stack: java.lang.Throwable
49: aload 4
monitorexit
50: athrow
51: StackMap locals:
StackMap stack:
iload 3
ifeq 53
52: aload 0
getfield com.sun.jndi.ldap.Connection.parent:Lcom/sun/jndi/ldap/LdapClient;
invokevirtual com.sun.jndi.ldap.LdapClient.processConnectionClosure:()V
53: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 54 0 this Lcom/sun/jndi/ldap/Connection;
0 54 1 reqCtls [Ljavax/naming/ldap/Control;
0 54 2 notifyParent Z
1 54 3 nparent Z
17 21 6 ldr Lcom/sun/jndi/ldap/LdapRequest;
30 34 6 ldr Lcom/sun/jndi/ldap/LdapRequest;
38 47 5 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
40 43 44 any
44 45 44 any
2 48 49 any
49 50 49 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:
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 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
invokestatic com.sun.jndi.ldap.Connection.readFully:(Ljava/io/InputStream;I)[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
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
}
SourceFile: "Connection.java"
InnerClasses:
final DecodeException = com.sun.jndi.ldap.Ber$DecodeException of com.sun.jndi.ldap.Ber