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 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: .line 162
            invokestatic com.sun.jndi.ldap.Connection.hostnameVerificationDisabledValue:()Z
         1: .line 161
            putstatic com.sun.jndi.ldap.Connection.IS_HOSTNAME_VERIFICATION_DISABLED:Z
         2: .line 162
            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: .line 165
            new com.sun.jndi.ldap.Connection$1
            dup
            invokespecial com.sun.jndi.ldap.Connection$1.<init>:()V
            astore 0 /* act */
        start local 0 // java.security.PrivilegedAction act
         1: .line 171
            aload 0 /* act */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* prop */
        start local 1 // java.lang.String prop
         2: .line 172
            aload 1 /* prop */
            ifnonnull 4
         3: .line 173
            iconst_0
            ireturn
         4: .line 175
      StackMap locals: java.security.PrivilegedAction java.lang.String
      StackMap stack:
            aload 1 /* prop */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: aload 1 /* prop */
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 1 // java.lang.String prop
        end local 0 // java.security.PrivilegedAction act
      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 // com.sun.jndi.ldap.Connection this
        start local 1 // boolean v
         0: .line 181
            aload 0 /* this */
            iload 1 /* v */
            putfield com.sun.jndi.ldap.Connection.v3:Z
         1: .line 182
            return
        end local 1 // boolean v
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
         0: .line 189
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.Connection.bound:Z
         1: .line 190
            return
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
        start local 1 // com.sun.jndi.ldap.LdapClient parent
        start local 2 // java.lang.String host
        start local 3 // int port
        start local 4 // java.lang.String socketFactory
        start local 5 // int connectTimeout
        start local 6 // int readTimeout
        start local 7 // java.io.OutputStream trace
         0: .line 198
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 117
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.Connection.v3:Z
         2: .line 124
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.Connection.bound:Z
         3: .line 127
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
         4: .line 128
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.Connection.traceTagIn:Ljava/lang/String;
         5: .line 129
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.Connection.traceTagOut:Ljava/lang/String;
         6: .line 148
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.Connection.outMsgId:I
         7: .line 154
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
         8: .line 156
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
         9: .line 157
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.Connection.useable:Z
        10: .line 795
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield com.sun.jndi.ldap.Connection.pauseLock:Ljava/lang/Object;
        11: .line 796
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.Connection.paused:Z
        12: .line 201
            aload 0 /* this */
            aload 2 /* host */
            putfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
        13: .line 202
            aload 0 /* this */
            iload 3 /* port */
            putfield com.sun.jndi.ldap.Connection.port:I
        14: .line 203
            aload 0 /* this */
            aload 1 /* parent */
            putfield com.sun.jndi.ldap.Connection.parent:Lcom/sun/jndi/ldap/LdapClient;
        15: .line 204
            aload 0 /* this */
            iload 6 /* readTimeout */
            putfield com.sun.jndi.ldap.Connection.readTimeout:I
        16: .line 205
            aload 0 /* this */
            iload 5 /* connectTimeout */
            putfield com.sun.jndi.ldap.Connection.connectTimeout:I
        17: .line 207
            aload 7 /* trace */
            ifnull 21
        18: .line 208
            aload 0 /* this */
            aload 7 /* trace */
            putfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
        19: .line 209
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "<- "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* host */
            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 /* port */
            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: .line 210
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "-> "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* host */
            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 /* port */
            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: .line 217
      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 /* this */
            aload 0 /* this */
            aload 2 /* host */
            iload 3 /* port */
            aload 4 /* socketFactory */
            iload 5 /* connectTimeout */
            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: .line 223
            aload 0 /* this */
            new java.io.BufferedInputStream
            dup
            aload 0 /* this */
            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: .line 224
            aload 0 /* this */
            new java.io.BufferedOutputStream
            dup
            aload 0 /* this */
            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: .line 226
            goto 36
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
        25: astore 8 /* e */
        start local 8 // java.lang.reflect.InvocationTargetException e
        26: .line 227
            aload 8 /* e */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            astore 9 /* realException */
        start local 9 // java.lang.Throwable realException
        27: .line 231
            new javax.naming.CommunicationException
            dup
            new java.lang.StringBuilder
            dup
            aload 2 /* host */
            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 /* port */
            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: .line 230
            astore 10 /* ce */
        start local 10 // javax.naming.CommunicationException ce
        29: .line 232
            aload 10 /* ce */
            aload 9 /* realException */
            invokevirtual javax.naming.CommunicationException.setRootCause:(Ljava/lang/Throwable;)V
        30: .line 233
            aload 10 /* ce */
            athrow
        end local 10 // javax.naming.CommunicationException ce
        end local 9 // java.lang.Throwable realException
        end local 8 // java.lang.reflect.InvocationTargetException e
        31: .line 234
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 8 /* e */
        start local 8 // java.lang.Exception e
        32: .line 241
            new javax.naming.CommunicationException
            dup
            new java.lang.StringBuilder
            dup
            aload 2 /* host */
            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 /* port */
            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: .line 240
            astore 9 /* ce */
        start local 9 // javax.naming.CommunicationException ce
        34: .line 242
            aload 9 /* ce */
            aload 8 /* e */
            invokevirtual javax.naming.CommunicationException.setRootCause:(Ljava/lang/Throwable;)V
        35: .line 243
            aload 9 /* ce */
            athrow
        end local 9 // javax.naming.CommunicationException ce
        end local 8 // java.lang.Exception e
        36: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.sun.jndi.ldap.Obj.helper:Lcom/sun/jndi/ldap/VersionHelper;
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.VersionHelper.createThread:(Ljava/lang/Runnable;)Ljava/lang/Thread;
            putfield com.sun.jndi.ldap.Connection.worker:Ljava/lang/Thread;
        37: .line 247
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.worker:Ljava/lang/Thread;
            iconst_1
            invokevirtual java.lang.Thread.setDaemon:(Z)V
        38: .line 248
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.worker:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.start:()V
        39: .line 249
            return
        end local 7 // java.io.OutputStream trace
        end local 6 // int readTimeout
        end local 5 // int connectTimeout
        end local 4 // java.lang.String socketFactory
        end local 3 // int port
        end local 2 // java.lang.String host
        end local 1 // com.sun.jndi.ldap.LdapClient parent
        end local 0 // com.sun.jndi.ldap.Connection this
      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.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 // com.sun.jndi.ldap.Connection this
        start local 1 // java.lang.String host
        start local 2 // int port
         0: .line 259
            ldc "java.net.InetSocketAddress"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
         1: .line 258
            astore 3 /* inetSocketAddressClass */
        start local 3 // java.lang.Class inetSocketAddressClass
         2: .line 262
            aload 3 /* inetSocketAddressClass */
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
         3: .line 263
            ldc Ljava/lang/String;
            aastore
            dup
            iconst_1
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
         4: .line 262
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
         5: .line 261
            astore 4 /* inetSocketAddressCons */
        start local 4 // java.lang.reflect.Constructor inetSocketAddressCons
         6: .line 265
            aload 4 /* inetSocketAddressCons */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         7: .line 266
            aload 1 /* host */
            aastore
            dup
            iconst_1
            new java.lang.Integer
            dup
            iload 2 /* port */
            invokespecial java.lang.Integer.<init>:(I)V
            aastore
         8: .line 265
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
         9: areturn
        end local 4 // java.lang.reflect.Constructor inetSocketAddressCons
        end local 3 // java.lang.Class inetSocketAddressClass
        10: .line 271
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            pop
        11: .line 272
            new java.lang.NoSuchMethodException
            dup
            invokespecial java.lang.NoSuchMethodException.<init>:()V
            athrow
        end local 2 // int port
        end local 1 // java.lang.String host
        end local 0 // com.sun.jndi.ldap.Connection this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   12     0                    this  Lcom/sun/jndi/ldap/Connection;
            0   12     1                    host  Ljava/lang/String;
            0   12     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      10  Class java.lang.InstantiationException
           0     9      10  Class java.lang.reflect.InvocationTargetException
           0     9      10  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 // com.sun.jndi.ldap.Connection this
        start local 1 // java.lang.String host
        start local 2 // int port
        start local 3 // java.lang.String socketFactory
        start local 4 // int connectTimeout
         0: .line 289
            aconst_null
            astore 5 /* socket */
        start local 5 // java.net.Socket socket
         1: .line 291
            aload 3 /* socketFactory */
            ifnull 31
         2: .line 295
            getstatic com.sun.jndi.ldap.Obj.helper:Lcom/sun/jndi/ldap/VersionHelper;
            aload 3 /* socketFactory */
            invokevirtual com.sun.jndi.ldap.VersionHelper.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 6 /* socketFactoryClass */
        start local 6 // java.lang.Class socketFactoryClass
         3: .line 297
            aload 6 /* socketFactoryClass */
            ldc "getDefault"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         4: .line 296
            astore 7 /* getDefault */
        start local 7 // java.lang.reflect.Method getDefault
         5: .line 298
            aload 7 /* getDefault */
            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 /* factory */
        start local 8 // java.lang.Object factory
         6: .line 302
            aconst_null
            astore 9 /* createSocket */
        start local 9 // java.lang.reflect.Method createSocket
         7: .line 304
            iload 4 /* connectTimeout */
            ifle 23
         8: .line 307
            aload 6 /* socketFactoryClass */
            ldc "createSocket"
         9: .line 308
            iconst_0
            anewarray java.lang.Class
        10: .line 307
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 9 /* createSocket */
        11: .line 310
            ldc Ljava/net/Socket;
            ldc "connect"
        12: .line 311
            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: .line 312
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
        14: .line 310
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 10 /* connect */
        start local 10 // java.lang.reflect.Method connect
        15: .line 313
            aload 0 /* this */
            aload 1 /* host */
            iload 2 /* port */
            invokevirtual com.sun.jndi.ldap.Connection.createInetSocketAddress:(Ljava/lang/String;I)Ljava/lang/Object;
            astore 11 /* endpoint */
        start local 11 // java.lang.Object endpoint
        16: .line 317
            aload 9 /* createSocket */
            aload 8 /* factory */
            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: .line 316
            astore 5 /* socket */
        18: .line 325
            aload 10 /* connect */
            aload 5 /* socket */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        19: .line 326
            aload 11 /* endpoint */
            aastore
            dup
            iconst_1
            new java.lang.Integer
            dup
            iload 4 /* connectTimeout */
            invokespecial java.lang.Integer.<init>:(I)V
            aastore
        20: .line 325
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 11 // java.lang.Object endpoint
        end local 10 // java.lang.reflect.Method connect
        21: .line 328
            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: .line 333
      StackMap locals:
      StackMap stack:
            aload 5 /* socket */
            ifnonnull 47
        24: .line 334
            aload 6 /* socketFactoryClass */
            ldc "createSocket"
        25: .line 335
            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: .line 334
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 9 /* createSocket */
        27: .line 342
            aload 9 /* createSocket */
            aload 8 /* factory */
        28: .line 343
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* host */
            aastore
            dup
            iconst_1
            new java.lang.Integer
            dup
            iload 2 /* port */
            invokespecial java.lang.Integer.<init>:(I)V
            aastore
        29: .line 342
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.net.Socket
            astore 5 /* socket */
        end local 9 // java.lang.reflect.Method createSocket
        end local 8 // java.lang.Object factory
        end local 7 // java.lang.reflect.Method getDefault
        end local 6 // java.lang.Class socketFactoryClass
        30: .line 345
            goto 47
        31: .line 347
      StackMap locals: com.sun.jndi.ldap.Connection java.lang.String int java.lang.String int java.net.Socket
      StackMap stack:
            iload 4 /* connectTimeout */
            ifle 45
        32: .line 351
            ldc Ljava/net/Socket;
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
        33: .line 350
            astore 6 /* socketCons */
        start local 6 // java.lang.reflect.Constructor socketCons
        34: .line 353
            ldc Ljava/net/Socket;
            ldc "connect"
        35: .line 354
            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: .line 355
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
        37: .line 353
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 7 /* connect */
        start local 7 // java.lang.reflect.Method connect
        38: .line 356
            aload 0 /* this */
            aload 1 /* host */
            iload 2 /* port */
            invokevirtual com.sun.jndi.ldap.Connection.createInetSocketAddress:(Ljava/lang/String;I)Ljava/lang/Object;
            astore 8 /* endpoint */
        start local 8 // java.lang.Object endpoint
        39: .line 358
            aload 6 /* socketCons */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.net.Socket
            astore 5 /* socket */
        40: .line 364
            aload 7 /* connect */
            aload 5 /* socket */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        41: .line 365
            aload 8 /* endpoint */
            aastore
            dup
            iconst_1
            new java.lang.Integer
            dup
            iload 4 /* connectTimeout */
            invokespecial java.lang.Integer.<init>:(I)V
            aastore
        42: .line 364
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.lang.Object endpoint
        end local 7 // java.lang.reflect.Method connect
        end local 6 // java.lang.reflect.Constructor socketCons
        43: .line 367
            goto 45
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
        44: pop
        45: .line 372
      StackMap locals:
      StackMap stack:
            aload 5 /* socket */
            ifnonnull 47
        46: .line 377
            new java.net.Socket
            dup
            aload 1 /* host */
            iload 2 /* port */
            invokespecial java.net.Socket.<init>:(Ljava/lang/String;I)V
            astore 5 /* socket */
        47: .line 385
      StackMap locals:
      StackMap stack:
            aload 5 /* socket */
            instanceof javax.net.ssl.SSLSocket
            ifeq 58
        48: .line 386
            aload 5 /* socket */
            checkcast javax.net.ssl.SSLSocket
            astore 6 /* sslSocket */
        start local 6 // javax.net.ssl.SSLSocket sslSocket
        49: .line 387
            getstatic com.sun.jndi.ldap.Connection.IS_HOSTNAME_VERIFICATION_DISABLED:Z
            ifne 53
        50: .line 388
            aload 6 /* sslSocket */
            invokevirtual javax.net.ssl.SSLSocket.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
            astore 7 /* param */
        start local 7 // javax.net.ssl.SSLParameters param
        51: .line 389
            aload 7 /* param */
            ldc "LDAPS"
            invokevirtual javax.net.ssl.SSLParameters.setEndpointIdentificationAlgorithm:(Ljava/lang/String;)V
        52: .line 390
            aload 6 /* sslSocket */
            aload 7 /* param */
            invokevirtual javax.net.ssl.SSLSocket.setSSLParameters:(Ljavax/net/ssl/SSLParameters;)V
        end local 7 // javax.net.ssl.SSLParameters param
        53: .line 392
      StackMap locals: javax.net.ssl.SSLSocket
      StackMap stack:
            iload 4 /* connectTimeout */
            ifle 58
        54: .line 393
            aload 6 /* sslSocket */
            invokevirtual javax.net.ssl.SSLSocket.getSoTimeout:()I
            istore 7 /* socketTimeout */
        start local 7 // int socketTimeout
        55: .line 394
            aload 6 /* sslSocket */
            iload 4 /* connectTimeout */
            invokevirtual javax.net.ssl.SSLSocket.setSoTimeout:(I)V
        56: .line 395
            aload 6 /* sslSocket */
            invokevirtual javax.net.ssl.SSLSocket.startHandshake:()V
        57: .line 396
            aload 6 /* sslSocket */
            iload 7 /* socketTimeout */
            invokevirtual javax.net.ssl.SSLSocket.setSoTimeout:(I)V
        end local 7 // int socketTimeout
        end local 6 // javax.net.ssl.SSLSocket sslSocket
        58: .line 399
      StackMap locals:
      StackMap stack:
            aload 5 /* socket */
            areturn
        end local 5 // java.net.Socket socket
        end local 4 // int connectTimeout
        end local 3 // java.lang.String socketFactory
        end local 2 // int port
        end local 1 // java.lang.String host
        end local 0 // com.sun.jndi.ldap.Connection this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   59     0                this  Lcom/sun/jndi/ldap/Connection;
            0   59     1                host  Ljava/lang/String;
            0   59     2                port  I
            0   59     3       socketFactory  Ljava/lang/String;
            0   59     4      connectTimeout  I
            1   59     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<Ljava/net/Socket;>;
           38   43     7             connect  Ljava/lang/reflect/Method;
           39   43     8            endpoint  Ljava/lang/Object;
           49   58     6           sslSocket  Ljavax/net/ssl/SSLSocket;
           51   53     7               param  Ljavax/net/ssl/SSLParameters;
           55   58     7       socketTimeout  I
      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 // com.sun.jndi.ldap.Connection this
         0: .line 409
            aload 0 /* this */
            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 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
        start local 1 // com.sun.jndi.ldap.BerEncoder ber
        start local 2 // int msgId
         0: .line 413
            aload 0 /* this */
            aload 1 /* ber */
            iload 2 /* msgId */
            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 // int msgId
        end local 1 // com.sun.jndi.ldap.BerEncoder ber
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
        start local 1 // com.sun.jndi.ldap.BerEncoder ber
        start local 2 // int msgId
        start local 3 // boolean pauseAfterReceipt
         0: .line 418
            aload 0 /* this */
            aload 1 /* ber */
            iload 2 /* msgId */
            iload 3 /* pauseAfterReceipt */
            iconst_m1
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;IZI)Lcom/sun/jndi/ldap/LdapRequest;
            areturn
        end local 3 // boolean pauseAfterReceipt
        end local 2 // int msgId
        end local 1 // com.sun.jndi.ldap.BerEncoder ber
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
        start local 1 // com.sun.jndi.ldap.BerEncoder ber
        start local 2 // int msgId
        start local 3 // boolean pauseAfterReceipt
        start local 4 // int replyQueueCapacity
         0: .line 425
            new com.sun.jndi.ldap.LdapRequest
            dup
            iload 2 /* msgId */
            iload 3 /* pauseAfterReceipt */
            iload 4 /* replyQueueCapacity */
            invokespecial com.sun.jndi.ldap.LdapRequest.<init>:(IZI)V
         1: .line 424
            astore 5 /* req */
        start local 5 // com.sun.jndi.ldap.LdapRequest req
         2: .line 426
            aload 0 /* this */
            aload 5 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.addRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
         3: .line 428
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
            ifnull 5
         4: .line 429
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.traceTagOut:Ljava/lang/String;
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.getBuf:()[B
            iconst_0
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.getDataLen:()I
            invokestatic com.sun.jndi.ldap.Ber.dumpBER:(Ljava/io/OutputStream;Ljava/lang/String;[BII)V
         5: .line 436
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.Connection.unpauseReader:()V
         6: .line 443
            aload 0 /* this */
            dup
            astore 6
            monitorenter
         7: .line 444
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.getBuf:()[B
            iconst_0
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.getDataLen:()I
            invokevirtual java.io.OutputStream.write:([BII)V
         8: .line 445
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.flush:()V
         9: .line 443
            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: .line 447
      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 /* e */
        start local 6 // java.io.IOException e
        14: .line 448
            aload 0 /* this */
            aconst_null
            iconst_1
            invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
        15: .line 449
            aload 0 /* this */
            aload 6 /* e */
            dup_x1
            putfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
            athrow
        end local 6 // java.io.IOException e
        16: .line 452
      StackMap locals:
      StackMap stack:
            aload 5 /* req */
            areturn
        end local 5 // com.sun.jndi.ldap.LdapRequest req
        end local 4 // int replyQueueCapacity
        end local 3 // boolean pauseAfterReceipt
        end local 2 // int msgId
        end local 1 // com.sun.jndi.ldap.BerEncoder ber
        end local 0 // com.sun.jndi.ldap.Connection this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   17     0                this  Lcom/sun/jndi/ldap/Connection;
            0   17     1                 ber  Lcom/sun/jndi/ldap/BerEncoder;
            0   17     2               msgId  I
            0   17     3   pauseAfterReceipt  Z
            0   17     4  replyQueueCapacity  I
            2   17     5                 req  Lcom/sun/jndi/ldap/LdapRequest;
           14   16     6                   e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           7    10      11  any
          11    12      11  any
           6    13      13  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                    Name  Flags
      ber                 
      msgId               
      pauseAfterReceipt   
      replyQueueCapacity  

  com.sun.jndi.ldap.BerDecoder readReply(com.sun.jndi.ldap.LdapRequest);
    descriptor: (Lcom/sun/jndi/ldap/LdapRequest;)Lcom/sun/jndi/ldap/BerDecoder;
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.sun.jndi.ldap.Connection this
        start local 1 // com.sun.jndi.ldap.LdapRequest ldr
         0: .line 461
            iconst_0
            istore 3 /* waited */
        start local 3 // boolean waited
         1: .line 463
            goto 30
        start local 2 // com.sun.jndi.ldap.BerDecoder rber
         2: .line 466
      StackMap locals: com.sun.jndi.ldap.BerDecoder int
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         3: .line 467
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
            ifnonnull 7
         4: .line 468
            new javax.naming.ServiceUnavailableException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            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 /* this */
            getfield com.sun.jndi.ldap.Connection.port:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         5: .line 469
            ldc "; socket closed"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 468
            invokespecial javax.naming.ServiceUnavailableException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 466
      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: .line 472
      StackMap locals:
      StackMap stack:
            aload 1 /* ldr */
            dup
            astore 4
            monitorenter
        12: .line 474
            aload 1 /* ldr */
            invokevirtual com.sun.jndi.ldap.LdapRequest.getReplyBer:()Lcom/sun/jndi/ldap/BerDecoder;
            astore 2 /* rber */
        13: .line 475
            aload 2 /* rber */
            ifnonnull 20
        14: .line 476
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.readTimeout:I
            ifle 18
        15: .line 479
            aload 1 /* ldr */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.readTimeout:I
            i2l
            invokevirtual java.lang.Object.wait:(J)V
        16: .line 480
            iconst_1
            istore 3 /* waited */
        17: .line 481
            goto 22
        18: .line 485
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 1 /* ldr */
            invokevirtual java.lang.Object.wait:()V
        19: .line 487
            goto 22
        20: .line 488
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        21: goto 32
        22: .line 472
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        23: goto 30
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: aload 4
            monitorexit
        25: athrow
        26: .line 491
      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: .line 492
            new javax.naming.InterruptedNamingException
            dup
        28: .line 493
            ldc "Interrupted during LDAP operation"
        29: .line 492
            invokespecial javax.naming.InterruptedNamingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // com.sun.jndi.ldap.BerDecoder rber
        30: .line 463
      StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest top int
      StackMap stack:
            aload 1 /* ldr */
            invokevirtual com.sun.jndi.ldap.LdapRequest.getReplyBer:()Lcom/sun/jndi/ldap/BerDecoder;
            dup
            astore 2 /* rber */
        start local 2 // com.sun.jndi.ldap.BerDecoder rber
        31: ifnonnull 32
            iload 3 /* waited */
            ifeq 2
        32: .line 497
      StackMap locals: com.sun.jndi.ldap.Connection com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.BerDecoder int
      StackMap stack:
            aload 2 /* rber */
            ifnonnull 37
            iload 3 /* waited */
            ifeq 37
        33: .line 498
            aload 0 /* this */
            aload 1 /* ldr */
            aconst_null
            invokevirtual com.sun.jndi.ldap.Connection.abandonRequest:(Lcom/sun/jndi/ldap/LdapRequest;[Ljavax/naming/ldap/Control;)V
        34: .line 499
            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: .line 500
            aload 0 /* this */
            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: .line 499
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            athrow
        37: .line 503
      StackMap locals:
      StackMap stack:
            aload 2 /* rber */
            areturn
        end local 3 // boolean waited
        end local 2 // com.sun.jndi.ldap.BerDecoder rber
        end local 1 // com.sun.jndi.ldap.LdapRequest ldr
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
        start local 1 // com.sun.jndi.ldap.LdapRequest ldapRequest
         0: .line 515
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
            astore 2 /* ldr */
        start local 2 // com.sun.jndi.ldap.LdapRequest ldr
         1: .line 516
            aload 2 /* ldr */
            ifnonnull 5
         2: .line 517
            aload 0 /* this */
            aload 1 /* ldapRequest */
            putfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
         3: .line 518
            aload 1 /* ldapRequest */
            aconst_null
            putfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
         4: .line 519
            goto 7
         5: .line 520
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 1 /* ldapRequest */
            aload 0 /* this */
            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: .line 521
            aload 0 /* this */
            aload 1 /* ldapRequest */
            putfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
         7: .line 523
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.sun.jndi.ldap.LdapRequest ldr
        end local 1 // com.sun.jndi.ldap.LdapRequest ldapRequest
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
        start local 1 // int msgId
         0: .line 527
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
            astore 2 /* ldr */
        start local 2 // com.sun.jndi.ldap.LdapRequest ldr
         1: .line 528
            goto 5
         2: .line 529
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 2 /* ldr */
            getfield com.sun.jndi.ldap.LdapRequest.msgId:I
            iload 1 /* msgId */
            if_icmpne 4
         3: .line 530
            aload 2 /* ldr */
            areturn
         4: .line 532
      StackMap locals:
      StackMap stack:
            aload 2 /* ldr */
            getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
            astore 2 /* ldr */
         5: .line 528
      StackMap locals:
      StackMap stack:
            aload 2 /* ldr */
            ifnonnull 2
         6: .line 534
            aconst_null
            areturn
        end local 2 // com.sun.jndi.ldap.LdapRequest ldr
        end local 1 // int msgId
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
        start local 1 // com.sun.jndi.ldap.LdapRequest req
         0: .line 539
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
            astore 2 /* ldr */
        start local 2 // com.sun.jndi.ldap.LdapRequest ldr
         1: .line 540
            aconst_null
            astore 3 /* ldrprev */
        start local 3 // com.sun.jndi.ldap.LdapRequest ldrprev
         2: .line 542
            goto 12
         3: .line 543
      StackMap locals: com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 2 /* ldr */
            aload 1 /* req */
            if_acmpne 10
         4: .line 544
            aload 2 /* ldr */
            invokevirtual com.sun.jndi.ldap.LdapRequest.cancel:()V
         5: .line 546
            aload 3 /* ldrprev */
            ifnull 8
         6: .line 547
            aload 3 /* ldrprev */
            aload 2 /* ldr */
            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: .line 548
            goto 9
         8: .line 549
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* ldr */
            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: .line 551
      StackMap locals:
      StackMap stack:
            aload 2 /* ldr */
            aconst_null
            putfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
        10: .line 553
      StackMap locals:
      StackMap stack:
            aload 2 /* ldr */
            astore 3 /* ldrprev */
        11: .line 554
            aload 2 /* ldr */
            getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
            astore 2 /* ldr */
        12: .line 542
      StackMap locals:
      StackMap stack:
            aload 2 /* ldr */
            ifnonnull 3
        13: .line 556
            return
        end local 3 // com.sun.jndi.ldap.LdapRequest ldrprev
        end local 2 // com.sun.jndi.ldap.LdapRequest ldr
        end local 1 // com.sun.jndi.ldap.LdapRequest req
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
        start local 1 // com.sun.jndi.ldap.LdapRequest ldr
        start local 2 // javax.naming.ldap.Control[] reqCtls
         0: .line 560
            aload 0 /* this */
            aload 1 /* ldr */
            invokevirtual com.sun.jndi.ldap.Connection.removeRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
         1: .line 562
            new com.sun.jndi.ldap.BerEncoder
            dup
            sipush 256
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:(I)V
            astore 3 /* ber */
        start local 3 // com.sun.jndi.ldap.BerEncoder ber
         2: .line 563
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 4 /* abandonMsgId */
        start local 4 // int abandonMsgId
         3: .line 569
            aload 3 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         4: .line 570
            aload 3 /* ber */
            iload 4 /* abandonMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         5: .line 571
            aload 3 /* ber */
            aload 1 /* ldr */
            getfield com.sun.jndi.ldap.LdapRequest.msgId:I
            bipush 80
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(II)V
         6: .line 573
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.v3:Z
            ifeq 8
         7: .line 574
            aload 3 /* ber */
            aload 2 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
         8: .line 576
      StackMap locals: com.sun.jndi.ldap.BerEncoder int
      StackMap stack:
            aload 3 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
         9: .line 578
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
            ifnull 13
        10: .line 579
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.traceTagOut:Ljava/lang/String;
            aload 3 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.getBuf:()[B
            iconst_0
        11: .line 580
            aload 3 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.getDataLen:()I
        12: .line 579
            invokestatic com.sun.jndi.ldap.Ber.dumpBER:(Ljava/io/OutputStream;Ljava/lang/String;[BII)V
        13: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 5
            monitorenter
        14: .line 584
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
            aload 3 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.getBuf:()[B
            iconst_0
            aload 3 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.getDataLen:()I
            invokevirtual java.io.OutputStream.write:([BII)V
        15: .line 585
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.flush:()V
        16: .line 583
            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: .line 588
      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: .line 593
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int abandonMsgId
        end local 3 // com.sun.jndi.ldap.BerEncoder ber
        end local 2 // javax.naming.ldap.Control[] reqCtls
        end local 1 // com.sun.jndi.ldap.LdapRequest ldr
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
        start local 1 // javax.naming.ldap.Control[] reqCtls
         0: .line 596
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
            astore 2 /* ldr */
        start local 2 // com.sun.jndi.ldap.LdapRequest ldr
         1: .line 598
            goto 4
         2: .line 599
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 0 /* this */
            aload 2 /* ldr */
            aload 1 /* reqCtls */
            invokevirtual com.sun.jndi.ldap.Connection.abandonRequest:(Lcom/sun/jndi/ldap/LdapRequest;[Ljavax/naming/ldap/Control;)V
         3: .line 600
            aload 0 /* this */
            aload 2 /* ldr */
            getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
            dup
            astore 2 /* ldr */
            putfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
         4: .line 598
      StackMap locals:
      StackMap stack:
            aload 2 /* ldr */
            ifnonnull 2
         5: .line 602
            return
        end local 2 // com.sun.jndi.ldap.LdapRequest ldr
        end local 1 // javax.naming.ldap.Control[] reqCtls
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
        start local 1 // javax.naming.ldap.Control[] reqCtls
         0: .line 613
            new com.sun.jndi.ldap.BerEncoder
            dup
            sipush 256
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:(I)V
            astore 2 /* ber */
        start local 2 // com.sun.jndi.ldap.BerEncoder ber
         1: .line 614
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 3 /* unbindMsgId */
        start local 3 // int unbindMsgId
         2: .line 622
            aload 2 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         3: .line 623
            aload 2 /* ber */
            iload 3 /* unbindMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         4: .line 625
            aload 2 /* ber */
            bipush 66
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeByte:(I)V
         5: .line 626
            aload 2 /* ber */
            iconst_0
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeByte:(I)V
         6: .line 628
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.v3:Z
            ifeq 8
         7: .line 629
            aload 2 /* ber */
            aload 1 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
         8: .line 631
      StackMap locals: com.sun.jndi.ldap.BerEncoder int
      StackMap stack:
            aload 2 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
         9: .line 633
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
            ifnull 13
        10: .line 634
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.traceTagOut:Ljava/lang/String;
            aload 2 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.getBuf:()[B
        11: .line 635
            iconst_0
            aload 2 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.getDataLen:()I
        12: .line 634
            invokestatic com.sun.jndi.ldap.Ber.dumpBER:(Ljava/io/OutputStream;Ljava/lang/String;[BII)V
        13: .line 638
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
        14: .line 639
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
            aload 2 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.getBuf:()[B
            iconst_0
            aload 2 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.getDataLen:()I
            invokevirtual java.io.OutputStream.write:([BII)V
        15: .line 640
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.flush:()V
        16: .line 638
            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: .line 643
      StackMap locals: com.sun.jndi.ldap.Connection javax.naming.ldap.Control[] com.sun.jndi.ldap.BerEncoder int
      StackMap stack: java.io.IOException
            pop
        21: .line 648
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int unbindMsgId
        end local 2 // com.sun.jndi.ldap.BerEncoder ber
        end local 1 // javax.naming.ldap.Control[] reqCtls
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
        start local 1 // javax.naming.ldap.Control[] reqCtls
        start local 2 // boolean notifyParent
         0: .line 661
            iconst_0
            istore 3 /* nparent */
        start local 3 // boolean nparent
         1: .line 663
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         2: .line 664
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.Connection.useable:Z
         3: .line 666
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
            ifnull 36
         4: .line 671
            iload 2 /* notifyParent */
            ifne 6
         5: .line 672
            aload 0 /* this */
            aload 1 /* reqCtls */
            invokevirtual com.sun.jndi.ldap.Connection.abandonOutstandingReqs:([Ljavax/naming/ldap/Control;)V
         6: .line 674
      StackMap locals: int com.sun.jndi.ldap.Connection
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.bound:Z
            ifeq 23
         7: .line 675
            aload 0 /* this */
            aload 1 /* reqCtls */
            invokevirtual com.sun.jndi.ldap.Connection.ldapUnbind:([Ljavax/naming/ldap/Control;)V
         8: .line 677
            goto 23
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 5
        10: .line 679
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.flush:()V
        11: .line 680
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
            invokevirtual java.net.Socket.close:()V
        12: .line 681
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.Connection.unpauseReader:()V
        13: .line 682
            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: .line 686
      StackMap locals:
      StackMap stack:
            iload 2 /* notifyParent */
            ifne 21
        16: .line 687
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
            astore 6 /* ldr */
        start local 6 // com.sun.jndi.ldap.LdapRequest ldr
        17: .line 688
            goto 20
        18: .line 689
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 6 /* ldr */
            invokevirtual com.sun.jndi.ldap.LdapRequest.cancel:()V
        19: .line 690
            aload 6 /* ldr */
            getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
            astore 6 /* ldr */
        20: .line 688
      StackMap locals:
      StackMap stack:
            aload 6 /* ldr */
            ifnonnull 18
        end local 6 // com.sun.jndi.ldap.LdapRequest ldr
        21: .line 693
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
        22: .line 694
            aload 5
            athrow
        23: .line 679
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.flush:()V
        24: .line 680
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
            invokevirtual java.net.Socket.close:()V
        25: .line 681
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.Connection.unpauseReader:()V
        26: .line 682
            goto 28
      StackMap locals:
      StackMap stack: java.io.IOException
        27: astore 6
        28: .line 686
      StackMap locals:
      StackMap stack:
            iload 2 /* notifyParent */
            ifne 34
        29: .line 687
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
            astore 6 /* ldr */
        start local 6 // com.sun.jndi.ldap.LdapRequest ldr
        30: .line 688
            goto 33
        31: .line 689
      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 /* ldr */
            invokevirtual com.sun.jndi.ldap.LdapRequest.cancel:()V
        32: .line 690
            aload 6 /* ldr */
            getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
            astore 6 /* ldr */
        33: .line 688
      StackMap locals:
      StackMap stack:
            aload 6 /* ldr */
            ifnonnull 31
        end local 6 // com.sun.jndi.ldap.LdapRequest ldr
        34: .line 693
      StackMap locals: com.sun.jndi.ldap.Connection javax.naming.ldap.Control[] int int com.sun.jndi.ldap.Connection
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.Connection.sock:Ljava/net/Socket;
        35: .line 695
            iload 2 /* notifyParent */
            istore 3 /* nparent */
        36: .line 697
      StackMap locals:
      StackMap stack:
            iload 3 /* nparent */
            ifeq 47
        37: .line 698
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.pendingRequests:Lcom/sun/jndi/ldap/LdapRequest;
            astore 5 /* ldr */
        start local 5 // com.sun.jndi.ldap.LdapRequest ldr
        38: .line 699
            goto 46
        39: .line 701
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 5 /* ldr */
            dup
            astore 6
            monitorenter
        40: .line 702
            aload 5 /* ldr */
            invokevirtual java.lang.Object.notify:()V
        41: .line 703
            aload 5 /* ldr */
            getfield com.sun.jndi.ldap.LdapRequest.next:Lcom/sun/jndi/ldap/LdapRequest;
            astore 5 /* ldr */
        42: .line 701
            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: .line 699
      StackMap locals:
      StackMap stack:
            aload 5 /* ldr */
            ifnonnull 39
        end local 5 // com.sun.jndi.ldap.LdapRequest ldr
        47: .line 663
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        48: goto 51
      StackMap locals:
      StackMap stack: java.lang.Throwable
        49: aload 4
            monitorexit
        50: athrow
        51: .line 708
      StackMap locals:
      StackMap stack:
            iload 3 /* nparent */
            ifeq 53
        52: .line 709
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.parent:Lcom/sun/jndi/ldap/LdapClient;
            invokevirtual com.sun.jndi.ldap.LdapClient.processConnectionClosure:()V
        53: .line 711
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean nparent
        end local 2 // boolean notifyParent
        end local 1 // javax.naming.ldap.Control[] reqCtls
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
        start local 1 // java.io.InputStream newIn
        start local 2 // java.io.OutputStream newOut
         0: .line 724
            aload 0 /* this */
            aload 1 /* newIn */
            putfield com.sun.jndi.ldap.Connection.inStream:Ljava/io/InputStream;
         1: .line 728
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.flush:()V
         2: .line 729
            goto 4
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 3
         4: .line 735
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* newOut */
            putfield com.sun.jndi.ldap.Connection.outStream:Ljava/io/OutputStream;
         5: .line 736
            return
        end local 2 // java.io.OutputStream newOut
        end local 1 // java.io.InputStream newIn
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
         0: .line 744
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.inStream:Ljava/io/InputStream;
            areturn
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
         0: .line 802
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.pauseLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 803
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.paused:Z
            ifeq 4
         2: .line 808
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.Connection.paused:Z
         3: .line 809
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.pauseLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notify:()V
         4: .line 802
      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: .line 812
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
         0: .line 824
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.Connection.paused:Z
         1: .line 826
            goto 3
         2: .line 827
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.pauseLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.wait:()V
         3: .line 826
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.paused:Z
            ifne 2
         4: .line 829
            goto 9
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         5: pop
         6: .line 830
            new java.io.InterruptedIOException
            dup
         7: .line 831
            ldc "Pause/unpause reader has problems."
         8: .line 830
            invokespecial java.io.InterruptedIOException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 833
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // com.sun.jndi.ldap.Connection this
         0: .line 854
            aconst_null
            astore 10 /* in */
        start local 10 // java.io.InputStream in
         1: .line 860
      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 /* inbuf */
        start local 1 // byte[] inbuf
         2: .line 862
            iconst_0
            istore 5 /* offset */
        start local 5 // int offset
         3: .line 863
            iconst_0
            istore 6 /* seqlen */
        start local 6 // int seqlen
         4: .line 864
            iconst_0
            istore 7 /* seqlenlen */
        start local 7 // int seqlenlen
         5: .line 866
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.Connection.getInputStream:()Ljava/io/InputStream;
            astore 10 /* in */
         6: .line 869
            aload 10 /* in */
            aload 1 /* inbuf */
            iload 5 /* offset */
            iconst_1
            invokevirtual java.io.InputStream.read:([BII)I
            istore 3 /* bytesread */
        start local 3 // int bytesread
         7: .line 870
            iload 3 /* bytesread */
            ifge 10
         8: .line 871
            aload 10 /* in */
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.Connection.getInputStream:()Ljava/io/InputStream;
            if_acmpeq 73
         9: .line 872
            goto 1
        10: .line 878
      StackMap locals: com.sun.jndi.ldap.Connection byte[] top int top int int int top top java.io.InputStream
      StackMap stack:
            aload 1 /* inbuf */
            iload 5 /* offset */
            iinc 5 /* offset */ 1
            baload
            bipush 48
            if_icmpeq 12
        11: .line 879
            goto 1
        12: .line 882
      StackMap locals:
      StackMap stack:
            aload 10 /* in */
            aload 1 /* inbuf */
            iload 5 /* offset */
            iconst_1
            invokevirtual java.io.InputStream.read:([BII)I
            istore 3 /* bytesread */
        13: .line 883
            iload 3 /* bytesread */
            ifge 15
        14: .line 884
            goto 73
        15: .line 885
      StackMap locals:
      StackMap stack:
            aload 1 /* inbuf */
            iload 5 /* offset */
            iinc 5 /* offset */ 1
            baload
            istore 6 /* seqlen */
        16: .line 890
            iload 6 /* seqlen */
            sipush 128
            iand
            sipush 128
            if_icmpne 38
        17: .line 891
            iload 6 /* seqlen */
            bipush 127
            iand
            istore 7 /* seqlenlen */
        18: .line 893
            iconst_0
            istore 3 /* bytesread */
        19: .line 894
            iconst_0
            istore 8 /* eos */
        start local 8 // boolean eos
        20: .line 897
            goto 28
        21: .line 898
      StackMap locals: com.sun.jndi.ldap.Connection byte[] top int top int int int int top java.io.InputStream
      StackMap stack:
            aload 10 /* in */
            aload 1 /* inbuf */
            iload 5 /* offset */
            iload 3 /* bytesread */
            iadd
        22: .line 899
            iload 7 /* seqlenlen */
            iload 3 /* bytesread */
            isub
        23: .line 898
            invokevirtual java.io.InputStream.read:([BII)I
            istore 4 /* br */
        start local 4 // int br
        24: .line 900
            iload 4 /* br */
            ifge 27
        25: .line 901
            iconst_1
            istore 8 /* eos */
        26: .line 902
            goto 29
        27: .line 904
      StackMap locals: com.sun.jndi.ldap.Connection byte[] top int int int int int int top java.io.InputStream
      StackMap stack:
            iload 3 /* bytesread */
            iload 4 /* br */
            iadd
            istore 3 /* bytesread */
        end local 4 // int br
        28: .line 897
      StackMap locals: com.sun.jndi.ldap.Connection byte[] top int top int int int int top java.io.InputStream
      StackMap stack:
            iload 3 /* bytesread */
            iload 7 /* seqlenlen */
            if_icmplt 21
        29: .line 908
      StackMap locals:
      StackMap stack:
            iload 8 /* eos */
            ifeq 31
        30: .line 909
            goto 73
        31: .line 912
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* seqlen */
        32: .line 913
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        33: goto 36
        34: .line 914
      StackMap locals: int
      StackMap stack:
            iload 6 /* seqlen */
            bipush 8
            ishl
            aload 1 /* inbuf */
            iload 5 /* offset */
            iload 11 /* i */
            iadd
            baload
            sipush 255
            iand
            iadd
            istore 6 /* seqlen */
        35: .line 913
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 11 /* i */
            iload 7 /* seqlenlen */
            if_icmplt 34
        end local 11 // int i
        37: .line 916
            iload 5 /* offset */
            iload 3 /* bytesread */
            iadd
            istore 5 /* offset */
        end local 8 // boolean eos
        38: .line 920
      StackMap locals: com.sun.jndi.ldap.Connection byte[] top int top int int int top top java.io.InputStream
      StackMap stack:
            aload 10 /* in */
            iload 6 /* seqlen */
            invokestatic com.sun.jndi.ldap.Connection.readFully:(Ljava/io/InputStream;I)[B
            astore 11 /* left */
        start local 11 // byte[] left
        39: .line 921
            aload 1 /* inbuf */
            iload 5 /* offset */
            aload 11 /* left */
            arraylength
            iadd
            invokestatic java.util.Arrays.copyOf:([BI)[B
            astore 1 /* inbuf */
        40: .line 922
            aload 11 /* left */
            iconst_0
            aload 1 /* inbuf */
            iload 5 /* offset */
            aload 11 /* left */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        41: .line 923
            iload 5 /* offset */
            aload 11 /* left */
            arraylength
            iadd
            istore 5 /* offset */
        42: .line 935
            new com.sun.jndi.ldap.BerDecoder
            dup
            aload 1 /* inbuf */
            iconst_0
            iload 5 /* offset */
            invokespecial com.sun.jndi.ldap.BerDecoder.<init>:([BII)V
            astore 9 /* retBer */
        start local 9 // com.sun.jndi.ldap.BerDecoder retBer
        43: .line 937
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
            ifnull 45
        44: .line 938
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.traceFile:Ljava/io/OutputStream;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.traceTagIn:Ljava/lang/String;
            aload 1 /* inbuf */
            iconst_0
            iload 5 /* offset */
            invokestatic com.sun.jndi.ldap.Ber.dumpBER:(Ljava/io/OutputStream;Ljava/lang/String;[BII)V
        45: .line 941
      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 /* retBer */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
        46: .line 942
            aload 9 /* retBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseInt:()I
            istore 2 /* inMsgId */
        start local 2 // int inMsgId
        47: .line 943
            aload 9 /* retBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.reset:()V
        48: .line 945
            iconst_0
            istore 12 /* needPause */
        start local 12 // boolean needPause
        49: .line 947
            iload 2 /* inMsgId */
            ifne 52
        50: .line 949
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.parent:Lcom/sun/jndi/ldap/LdapClient;
            aload 9 /* retBer */
            invokevirtual com.sun.jndi.ldap.LdapClient.processUnsolicited:(Lcom/sun/jndi/ldap/BerDecoder;)V
        51: .line 950
            goto 1
        52: .line 951
      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 /* this */
            iload 2 /* inMsgId */
            invokevirtual com.sun.jndi.ldap.Connection.findRequest:(I)Lcom/sun/jndi/ldap/LdapRequest;
            astore 13 /* ldr */
        start local 13 // com.sun.jndi.ldap.LdapRequest ldr
        53: .line 953
            aload 13 /* ldr */
            ifnull 1
        54: .line 960
            aload 0 /* this */
            getfield com.sun.jndi.ldap.Connection.pauseLock:Ljava/lang/Object;
            dup
            astore 14
            monitorenter
        55: .line 961
            aload 13 /* ldr */
            aload 9 /* retBer */
            invokevirtual com.sun.jndi.ldap.LdapRequest.addReplyBer:(Lcom/sun/jndi/ldap/BerDecoder;)Z
            istore 12 /* needPause */
        56: .line 962
            iload 12 /* needPause */
            ifeq 58
        57: .line 967
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.Connection.pauseReader:()V
        58: .line 960
      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 // com.sun.jndi.ldap.LdapRequest ldr
        end local 12 // boolean needPause
        end local 9 // com.sun.jndi.ldap.BerDecoder retBer
        end local 2 // int inMsgId
        62: .line 977
      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 // byte[] left
        63: .line 980
            goto 1
        end local 7 // int seqlenlen
        end local 6 // int seqlen
        end local 5 // int offset
        end local 3 // int bytesread
        end local 1 // byte[] inbuf
      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 /* ie */
        start local 11 // java.io.IOException ie
        65: .line 986
            aload 10 /* in */
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.Connection.getInputStream:()Ljava/io/InputStream;
            if_acmpne 1
        66: .line 993
            aload 11 /* ie */
            athrow
        end local 11 // java.io.IOException ie
        67: .line 1002
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 11 /* ex */
        start local 11 // java.io.IOException ex
        68: .line 1006
            aload 0 /* this */
            aload 11 /* ex */
            putfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
        end local 11 // java.io.IOException ex
        69: .line 1008
            aload 0 /* this */
            aconst_null
            iconst_1
            invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
            goto 74
        70: .line 1007
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 15
        71: .line 1008
            aload 0 /* this */
            aconst_null
            iconst_1
            invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
        72: .line 1009
            aload 15
            athrow
        73: .line 1008
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            iconst_1
            invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
        74: .line 1013
      StackMap locals:
      StackMap stack:
            return
        end local 10 // java.io.InputStream in
        end local 0 // com.sun.jndi.ldap.Connection this
      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 // java.io.InputStream is
        start local 1 // int length
         0: .line 1018
            iload 1 /* length */
            sipush 8192
            invokestatic java.lang.Math.min:(II)I
            newarray 8
            astore 2 /* buf */
        start local 2 // byte[] buf
         1: .line 1019
            iconst_0
            istore 3 /* nread */
        start local 3 // int nread
         2: .line 1020
            goto 15
         3: .line 1022
      StackMap locals: byte[] int
      StackMap stack:
            iload 3 /* nread */
            aload 2 /* buf */
            arraylength
            if_icmplt 8
         4: .line 1023
            iload 1 /* length */
            iload 3 /* nread */
            isub
            aload 2 /* buf */
            arraylength
            sipush 8192
            iadd
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* bytesToRead */
        start local 4 // int bytesToRead
         5: .line 1024
            aload 2 /* buf */
            arraylength
            iload 3 /* nread */
            iload 4 /* bytesToRead */
            iadd
            if_icmpge 9
         6: .line 1025
            aload 2 /* buf */
            iload 3 /* nread */
            iload 4 /* bytesToRead */
            iadd
            invokestatic java.util.Arrays.copyOf:([BI)[B
            astore 2 /* buf */
         7: .line 1027
            goto 9
        end local 4 // int bytesToRead
         8: .line 1028
      StackMap locals:
      StackMap stack:
            aload 2 /* buf */
            arraylength
            iload 3 /* nread */
            isub
            istore 4 /* bytesToRead */
        start local 4 // int bytesToRead
         9: .line 1030
      StackMap locals: int
      StackMap stack:
            aload 0 /* is */
            aload 2 /* buf */
            iload 3 /* nread */
            iload 4 /* bytesToRead */
            invokevirtual java.io.InputStream.read:([BII)I
            istore 5 /* count */
        start local 5 // int count
        10: .line 1031
            iload 5 /* count */
            ifge 14
        11: .line 1032
            aload 2 /* buf */
            arraylength
            iload 3 /* nread */
            if_icmpeq 16
        12: .line 1033
            aload 2 /* buf */
            iload 3 /* nread */
            invokestatic java.util.Arrays.copyOf:([BI)[B
            astore 2 /* buf */
        13: .line 1034
            goto 16
        14: .line 1036
      StackMap locals: int
      StackMap stack:
            iload 3 /* nread */
            iload 5 /* count */
            iadd
            istore 3 /* nread */
        end local 5 // int count
        end local 4 // int bytesToRead
        15: .line 1020
      StackMap locals:
      StackMap stack:
            iload 3 /* nread */
            iload 1 /* length */
            if_icmplt 3
        16: .line 1038
      StackMap locals:
      StackMap stack:
            aload 2 /* buf */
            areturn
        end local 3 // int nread
        end local 2 // byte[] buf
        end local 1 // int length
        end local 0 // java.io.InputStream is
      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"
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