public final class com.sun.jndi.ldap.LdapCtx extends com.sun.jndi.toolkit.ctx.ComponentDirContext implements javax.naming.event.EventDirContext, javax.naming.ldap.LdapContext
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.sun.jndi.ldap.LdapCtx
  super_class: com.sun.jndi.toolkit.ctx.ComponentDirContext
{
  private static final boolean debug;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final boolean HARD_CLOSE;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final boolean SOFT_CLOSE;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int DEFAULT_PORT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 389

  public static final int DEFAULT_SSL_PORT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 636

  public static final java.lang.String DEFAULT_HOST;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "localhost"

  private static final boolean DEFAULT_DELETE_RDN;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final boolean DEFAULT_TYPES_ONLY;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int DEFAULT_DEREF_ALIASES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int DEFAULT_LDAP_VERSION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final int DEFAULT_BATCH_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int DEFAULT_REFERRAL_MODE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final char DEFAULT_REF_SEPARATOR;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 35

  static final java.lang.String DEFAULT_SSL_FACTORY;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.net.ssl.SSLSocketFactory"

  private static final int DEFAULT_REFERRAL_LIMIT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private static final java.lang.String STARTTLS_REQ_OID;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "1.3.6.1.4.1.1466.20037"

  private static final java.lang.String[] SCHEMA_ATTRIBUTES;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String VERSION;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.version"

  private static final java.lang.String BINARY_ATTRIBUTES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.attributes.binary"

  private static final java.lang.String DELETE_RDN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.deleteRDN"

  private static final java.lang.String DEREF_ALIASES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.derefAliases"

  private static final java.lang.String TYPES_ONLY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.typesOnly"

  private static final java.lang.String REF_SEPARATOR;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.ref.separator"

  private static final java.lang.String SOCKET_FACTORY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.factory.socket"

  static final java.lang.String BIND_CONTROLS;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.control.connect"

  private static final java.lang.String REFERRAL_LIMIT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.referral.limit"

  private static final java.lang.String TRACE_BER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.trace.ber"

  private static final java.lang.String NETSCAPE_SCHEMA_BUG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.netscape.schemaBugs"

  private static final java.lang.String OLD_NETSCAPE_SCHEMA_BUG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.naming.netscape.schemaBugs"

  private static final java.lang.String CONNECT_TIMEOUT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.connect.timeout"

  private static final java.lang.String READ_TIMEOUT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.read.timeout"

  private static final java.lang.String ENABLE_POOL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.connect.pool"

  private static final java.lang.String DOMAIN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.domainname"

  private static final javax.naming.NameParser parser;
    descriptor: Ljavax/naming/NameParser;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final javax.naming.ldap.ControlFactory myResponseControlFactory;
    descriptor: Ljavax/naming/ldap/ControlFactory;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final javax.naming.ldap.Control manageReferralControl;
    descriptor: Ljavax/naming/ldap/Control;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.sun.jndi.toolkit.dir.HierMemDirCtx EMPTY_SCHEMA;
    descriptor: Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  int port_number;
    descriptor: I
    flags: (0x0000) 

  java.lang.String hostname;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  com.sun.jndi.ldap.LdapClient clnt;
    descriptor: Lcom/sun/jndi/ldap/LdapClient;
    flags: (0x0000) 

  java.util.Hashtable envprops;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0000) 

  int handleReferrals;
    descriptor: I
    flags: (0x0000) 

  boolean hasLdapsScheme;
    descriptor: Z
    flags: (0x0000) 

  java.lang.String currentDN;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  javax.naming.Name currentParsedDN;
    descriptor: Ljavax/naming/Name;
    flags: (0x0000) 

  java.util.Vector respCtls;
    descriptor: Ljava/util/Vector;
    flags: (0x0000) 

  javax.naming.ldap.Control[] reqCtls;
    descriptor: [Ljavax/naming/ldap/Control;
    flags: (0x0000) 

  private java.io.OutputStream trace;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

  private boolean netscapeSchemaBug;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private javax.naming.ldap.Control[] bindCtls;
    descriptor: [Ljavax/naming/ldap/Control;
    flags: (0x0002) ACC_PRIVATE

  private int referralHopLimit;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.util.Hashtable schemaTrees;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0002) ACC_PRIVATE

  private int batchSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean deleteRDN;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean typesOnly;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int derefAliases;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private char addrEncodingSeparator;
    descriptor: C
    flags: (0x0002) ACC_PRIVATE

  private java.util.Hashtable binaryAttrs;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0002) ACC_PRIVATE

  private int connectTimeout;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int readTimeout;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean useSsl;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean useDefaultPortNumber;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean parentIsLdapCtx;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int hopCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String url;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.jndi.ldap.EventSupport eventSupport;
    descriptor: Lcom/sun/jndi/ldap/EventSupport;
    flags: (0x0002) ACC_PRIVATE

  private boolean unsolicited;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean sharable;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int enumCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean closeRequested;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 138
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
            ldc "objectClasses"
            aastore
            dup
            iconst_1
            ldc "attributeTypes"
            aastore
            dup
            iconst_2
            ldc "matchingRules"
            aastore
            dup
            iconst_3
            ldc "ldapSyntaxes"
            aastore
         1: .line 137
            putstatic com.sun.jndi.ldap.LdapCtx.SCHEMA_ATTRIBUTES:[Ljava/lang/String;
         2: .line 195
            new com.sun.jndi.ldap.LdapNameParser
            dup
            invokespecial com.sun.jndi.ldap.LdapNameParser.<init>:()V
            putstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
         3: .line 199
            new com.sun.jndi.ldap.DefaultResponseControlFactory
            dup
            invokespecial com.sun.jndi.ldap.DefaultResponseControlFactory.<init>:()V
         4: .line 198
            putstatic com.sun.jndi.ldap.LdapCtx.myResponseControlFactory:Ljavax/naming/ldap/ControlFactory;
         5: .line 201
            new com.sun.jndi.ldap.ManageReferralControl
            dup
            iconst_0
            invokespecial com.sun.jndi.ldap.ManageReferralControl.<init>:(Z)V
         6: .line 200
            putstatic com.sun.jndi.ldap.LdapCtx.manageReferralControl:Ljavax/naming/ldap/Control;
         7: .line 203
            new com.sun.jndi.toolkit.dir.HierMemDirCtx
            dup
            invokespecial com.sun.jndi.toolkit.dir.HierMemDirCtx.<init>:()V
            putstatic com.sun.jndi.ldap.LdapCtx.EMPTY_SCHEMA:Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
         8: .line 205
            getstatic com.sun.jndi.ldap.LdapCtx.EMPTY_SCHEMA:Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
         9: .line 206
            new javax.naming.directory.SchemaViolationException
            dup
            ldc "Cannot update schema object"
            invokespecial javax.naming.directory.SchemaViolationException.<init>:(Ljava/lang/String;)V
        10: .line 205
            invokevirtual com.sun.jndi.toolkit.dir.HierMemDirCtx.setReadOnly:(Ljavax/naming/NamingException;)V
        11: .line 207
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, java.lang.String, int, java.util.Hashtable, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ILjava/util/Hashtable;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String dn
        start local 2 // java.lang.String host
        start local 3 // int port_number
        start local 4 // java.util.Hashtable props
        start local 5 // boolean useSsl
         0: .line 265
            aload 0 /* this */
            invokespecial com.sun.jndi.toolkit.ctx.ComponentDirContext.<init>:()V
         1: .line 215
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
         2: .line 217
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
         3: .line 218
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
         4: .line 219
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
         5: .line 220
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
         6: .line 227
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         7: .line 228
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
         8: .line 235
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
         9: .line 236
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        10: .line 237
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
        11: .line 238
            aload 0 /* this */
            bipush 10
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
        12: .line 239
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        13: .line 240
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
        14: .line 241
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
        15: .line 242
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
        16: .line 243
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        17: .line 244
            aload 0 /* this */
            bipush 35
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
        18: .line 246
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
        19: .line 247
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
        20: .line 248
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
        21: .line 249
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        22: .line 250
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
        23: .line 255
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
        24: .line 257
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.hopCount:I
        25: .line 258
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
        26: .line 260
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
        27: .line 261
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        28: .line 2757
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.enumCount:I
        29: .line 2758
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.closeRequested:Z
        30: .line 268
            aload 0 /* this */
            aload 0 /* this */
            iload 5 /* useSsl */
            dup_x1
            putfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        31: .line 270
            aload 4 /* props */
            ifnull 39
        32: .line 271
            aload 0 /* this */
            aload 4 /* props */
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        33: .line 274
            ldc "ssl"
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.protocol"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 35
        34: .line 275
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        35: .line 280
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.trace.ber"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.io.OutputStream
            putfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
        36: .line 282
            aload 4 /* props */
            ldc "com.sun.jndi.ldap.netscape.schemaBugs"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 38
        37: .line 283
            aload 4 /* props */
            ldc "com.sun.naming.netscape.schemaBugs"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 39
        38: .line 284
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        39: .line 288
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* dn */
            ifnull 40
            aload 1 /* dn */
            goto 41
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
        40: ldc ""
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int
      StackMap stack: com.sun.jndi.ldap.LdapCtx java.lang.String
        41: putfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
        42: .line 289
            aload 0 /* this */
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            putfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
        43: .line 291
            aload 0 /* this */
            aload 2 /* host */
            ifnull 44
            aload 2 /* host */
            invokevirtual java.lang.String.length:()I
            ifle 44
            aload 2 /* host */
            goto 45
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
        44: ldc "localhost"
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int
      StackMap stack: com.sun.jndi.ldap.LdapCtx java.lang.String
        45: putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        46: .line 292
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 48
        47: .line 293
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            iconst_1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        48: .line 296
      StackMap locals:
      StackMap stack:
            iload 3 /* port_number */
            ifle 51
        49: .line 297
            aload 0 /* this */
            iload 3 /* port_number */
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        50: .line 298
            goto 55
        51: .line 299
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
            ifeq 52
            sipush 636
            goto 53
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
        52: sipush 389
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int
      StackMap stack: com.sun.jndi.ldap.LdapCtx int
        53: putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        54: .line 300
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
        55: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.Hashtable
            dup
            bipush 11
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        56: .line 304
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.initEnv:()V
        57: .line 306
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.connect:(Z)V
        58: .line 307
            goto 64
      StackMap locals:
      StackMap stack: javax.naming.NamingException
        59: astore 6 /* e */
        start local 6 // javax.naming.NamingException e
        60: .line 309
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.close:()V
        61: .line 310
            goto 63
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int javax.naming.NamingException
      StackMap stack: java.lang.Exception
        62: pop
        63: .line 313
      StackMap locals:
      StackMap stack:
            aload 6 /* e */
            athrow
        end local 6 // javax.naming.NamingException e
        64: .line 315
      StackMap locals:
      StackMap stack:
            return
        end local 5 // boolean useSsl
        end local 4 // java.util.Hashtable props
        end local 3 // int port_number
        end local 2 // java.lang.String host
        end local 1 // java.lang.String dn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   65     0         this  Lcom/sun/jndi/ldap/LdapCtx;
            0   65     1           dn  Ljava/lang/String;
            0   65     2         host  Ljava/lang/String;
            0   65     3  port_number  I
            0   65     4        props  Ljava/util/Hashtable;
            0   65     5       useSsl  Z
           60   64     6            e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
          57    58      59  Class javax.naming.NamingException
          60    61      62  Class java.lang.Exception
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
             Name  Flags
      dn           
      host         
      port_number  
      props        
      useSsl       

  void <init>(com.sun.jndi.ldap.LdapCtx, java.lang.String);
    descriptor: (Lcom/sun/jndi/ldap/LdapCtx;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapCtx existing
        start local 2 // java.lang.String newDN
         0: .line 317
            aload 0 /* this */
            invokespecial com.sun.jndi.toolkit.ctx.ComponentDirContext.<init>:()V
         1: .line 215
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
         2: .line 217
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
         3: .line 218
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
         4: .line 219
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
         5: .line 220
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
         6: .line 227
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         7: .line 228
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
         8: .line 235
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
         9: .line 236
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        10: .line 237
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
        11: .line 238
            aload 0 /* this */
            bipush 10
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
        12: .line 239
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        13: .line 240
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
        14: .line 241
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
        15: .line 242
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
        16: .line 243
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        17: .line 244
            aload 0 /* this */
            bipush 35
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
        18: .line 246
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
        19: .line 247
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
        20: .line 248
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
        21: .line 249
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        22: .line 250
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
        23: .line 255
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
        24: .line 257
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.hopCount:I
        25: .line 258
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
        26: .line 260
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
        27: .line 261
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        28: .line 2757
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.enumCount:I
        29: .line 2758
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.closeRequested:Z
        30: .line 318
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        31: .line 319
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
            putfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
        32: .line 320
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
            putfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
        33: .line 322
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        34: .line 323
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.port_number:I
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        35: .line 324
            aload 0 /* this */
            aload 2 /* newDN */
            putfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
        36: .line 325
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            if_acmpne 39
        37: .line 326
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
            putfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
        38: .line 327
            goto 40
        39: .line 328
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapCtx java.lang.String
      StackMap stack:
            aload 0 /* this */
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            putfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
        40: .line 331
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        41: .line 332
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        42: .line 334
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
        43: .line 335
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            invokevirtual com.sun.jndi.ldap.LdapClient.incRefCount:()V
        44: .line 337
            aload 0 /* this */
            aload 2 /* newDN */
            ifnull 45
            aload 2 /* newDN */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 46
        45: .line 338
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
            goto 47
        46: .line 339
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
            iconst_1
        47: .line 337
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapCtx java.lang.String
      StackMap stack: com.sun.jndi.ldap.LdapCtx int
            putfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
        48: .line 342
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
            putfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
        49: .line 343
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
            putfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        50: .line 345
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.initEnv:()V
        51: .line 346
            return
        end local 2 // java.lang.String newDN
        end local 1 // com.sun.jndi.ldap.LdapCtx existing
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   52     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   52     1  existing  Lcom/sun/jndi/ldap/LdapCtx;
            0   52     2     newDN  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      existing  
      newDN     

  public javax.naming.ldap.LdapContext newInstance(javax.naming.ldap.Control[]);
    descriptor: ([Ljavax/naming/ldap/Control;)Ljavax/naming/ldap/LdapContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.ldap.Control[] reqCtls
         0: .line 350
            new com.sun.jndi.ldap.LdapCtx
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokespecial com.sun.jndi.ldap.LdapCtx.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Ljava/lang/String;)V
            astore 2 /* clone */
        start local 2 // javax.naming.ldap.LdapContext clone
         1: .line 356
            aload 2 /* clone */
            aload 1 /* reqCtls */
            invokeinterface javax.naming.ldap.LdapContext.setRequestControls:([Ljavax/naming/ldap/Control;)V
         2: .line 357
            aload 2 /* clone */
            areturn
        end local 2 // javax.naming.ldap.LdapContext clone
        end local 1 // javax.naming.ldap.Control[] reqCtls
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1  reqCtls  [Ljavax/naming/ldap/Control;
            1    3     2    clone  Ljavax/naming/ldap/LdapContext;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      reqCtls  

  protected void c_bind(javax.naming.Name, java.lang.Object, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/Object;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.Object obj
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 367
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* obj */
            aconst_null
            aload 3 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_bind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
         1: .line 368
            return
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // java.lang.Object obj
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  name  Ljavax/naming/Name;
            0    2     2   obj  Ljava/lang/Object;
            0    2     3  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      obj   
      cont  

  protected void c_bind(javax.naming.Name, java.lang.Object, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=10, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.Object obj
        start local 3 // javax.naming.directory.Attributes attrs
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 386
            aload 4 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 388
            aload 3 /* attrs */
            astore 5 /* inputAttrs */
        start local 5 // javax.naming.directory.Attributes inputAttrs
         2: .line 390
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         3: .line 392
            aload 2 /* obj */
            ifnonnull 8
         4: .line 393
            aload 3 /* attrs */
            ifnonnull 11
         5: .line 394
            new java.lang.IllegalArgumentException
            dup
         6: .line 395
            ldc "cannot bind null object with no attributes"
         7: .line 394
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 398
      StackMap locals: javax.naming.directory.Attributes
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
            aload 2 /* obj */
            aload 3 /* attrs */
         9: .line 399
            iconst_0
            aload 1 /* name */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        10: .line 398
            invokestatic com.sun.jndi.ldap.Obj.determineBindAttrs:(CLjava/lang/Object;Ljavax/naming/directory/Attributes;ZLjavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable;)Ljavax/naming/directory/Attributes;
            astore 3 /* attrs */
        11: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 6 /* newDN */
        start local 6 // java.lang.String newDN
        12: .line 403
            aload 6 /* newDN */
            aload 3 /* attrs */
            aload 5 /* inputAttrs */
            aload 3 /* attrs */
            if_acmpeq 13
            iconst_1
            goto 14
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes java.lang.String
      StackMap stack: java.lang.String javax.naming.directory.Attributes
        13: iconst_0
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes java.lang.String
      StackMap stack: java.lang.String javax.naming.directory.Attributes int
        14: invokestatic com.sun.jndi.ldap.LdapCtx.addRdnAttributes:(Ljava/lang/String;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/Attributes;
            astore 3 /* attrs */
        15: .line 404
            new com.sun.jndi.ldap.LdapEntry
            dup
            aload 6 /* newDN */
            aload 3 /* attrs */
            invokespecial com.sun.jndi.ldap.LdapEntry.<init>:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)V
            astore 7 /* entry */
        start local 7 // com.sun.jndi.ldap.LdapEntry entry
        16: .line 406
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 7 /* entry */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.add:(Lcom/sun/jndi/ldap/LdapEntry;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 8 /* answer */
        start local 8 // com.sun.jndi.ldap.LdapResult answer
        17: .line 407
            aload 0 /* this */
            aload 8 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        18: .line 409
            aload 8 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 42
        19: .line 410
            aload 0 /* this */
            aload 8 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 8 // com.sun.jndi.ldap.LdapResult answer
        end local 7 // com.sun.jndi.ldap.LdapEntry entry
        end local 6 // java.lang.String newDN
        20: .line 413
            goto 42
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        21: astore 6 /* e */
        start local 6 // com.sun.jndi.ldap.LdapReferralException e
        22: .line 414
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 24
        23: .line 415
            aload 4 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        24: .line 421
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 6 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        25: .line 420
            astore 7 /* refCtx */
        start local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        26: .line 426
            aload 7 /* refCtx */
            aload 1 /* name */
            aload 2 /* obj */
            aload 5 /* inputAttrs */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.bind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;)V
        27: .line 435
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        28: .line 427
            return
        29: .line 429
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 8 /* re */
        start local 8 // com.sun.jndi.ldap.LdapReferralException re
        30: .line 430
            aload 8 /* re */
            astore 6 /* e */
        31: .line 435
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        32: .line 431
            goto 24
        end local 8 // com.sun.jndi.ldap.LdapReferralException re
        33: .line 433
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        34: .line 435
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        35: .line 436
            aload 9
            athrow
        end local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 6 // com.sun.jndi.ldap.LdapReferralException e
        36: .line 439
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        37: .line 440
            new javax.naming.CommunicationException
            dup
            aload 6 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 7 /* e2 */
        start local 7 // javax.naming.NamingException e2
        38: .line 441
            aload 7 /* e2 */
            aload 6 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        39: .line 442
            aload 4 /* cont */
            aload 7 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 7 // javax.naming.NamingException e2
        end local 6 // java.io.IOException e
        40: .line 444
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 6 /* e */
        start local 6 // javax.naming.NamingException e
        41: .line 445
            aload 4 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e
        42: .line 447
      StackMap locals:
      StackMap stack:
            return
        end local 5 // javax.naming.directory.Attributes inputAttrs
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // javax.naming.directory.Attributes attrs
        end local 2 // java.lang.Object obj
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   43     1        name  Ljavax/naming/Name;
            0   43     2         obj  Ljava/lang/Object;
            0   43     3       attrs  Ljavax/naming/directory/Attributes;
            0   43     4        cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   43     5  inputAttrs  Ljavax/naming/directory/Attributes;
           12   20     6       newDN  Ljava/lang/String;
           16   20     7       entry  Lcom/sun/jndi/ldap/LdapEntry;
           17   20     8      answer  Lcom/sun/jndi/ldap/LdapResult;
           22   36     6           e  Lcom/sun/jndi/ldap/LdapReferralException;
           26   36     7      refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           30   33     8          re  Lcom/sun/jndi/ldap/LdapReferralException;
           37   40     6           e  Ljava/io/IOException;
           38   40     7          e2  Ljavax/naming/NamingException;
           41   42     6           e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2    20      21  Class com.sun.jndi.ldap.LdapReferralException
          26    27      29  Class com.sun.jndi.ldap.LdapReferralException
          26    27      33  any
          29    31      33  any
           2    20      36  Class java.io.IOException
           2    20      40  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      name   
      obj    
      attrs  
      cont   

  protected void c_rebind(javax.naming.Name, java.lang.Object, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/Object;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.Object obj
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 451
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* obj */
            aconst_null
            aload 3 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_rebind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
         1: .line 452
            return
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // java.lang.Object obj
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  name  Ljavax/naming/Name;
            0    2     2   obj  Ljava/lang/Object;
            0    2     3  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      obj   
      cont  

  protected void c_rebind(javax.naming.Name, java.lang.Object, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.Object obj
        start local 3 // javax.naming.directory.Attributes attrs
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 473
            aload 4 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 475
            aload 3 /* attrs */
            astore 5 /* inputAttrs */
        start local 5 // javax.naming.directory.Attributes inputAttrs
         2: .line 478
            aconst_null
            astore 6 /* origAttrs */
        start local 6 // javax.naming.directory.Attributes origAttrs
         3: .line 482
            aload 0 /* this */
            aload 1 /* name */
            aconst_null
            aload 4 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_getAttributes:(Ljavax/naming/Name;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/Attributes;
            astore 6 /* origAttrs */
         4: .line 483
            goto 6
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes
      StackMap stack: javax.naming.NameNotFoundException
         5: pop
         6: .line 486
      StackMap locals:
      StackMap stack:
            aload 6 /* origAttrs */
            ifnonnull 9
         7: .line 487
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* obj */
            aload 3 /* attrs */
            aload 4 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_bind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
         8: .line 488
            return
         9: .line 494
      StackMap locals:
      StackMap stack:
            aload 3 /* attrs */
            ifnonnull 11
            aload 2 /* obj */
            instanceof javax.naming.directory.DirContext
            ifeq 11
        10: .line 495
            aload 2 /* obj */
            checkcast javax.naming.directory.DirContext
            ldc ""
            invokeinterface javax.naming.directory.DirContext.getAttributes:(Ljava/lang/String;)Ljavax/naming/directory/Attributes;
            astore 3 /* attrs */
        11: .line 497
      StackMap locals:
      StackMap stack:
            aload 6 /* origAttrs */
            invokeinterface javax.naming.directory.Attributes.clone:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attributes
            astore 7 /* keepAttrs */
        start local 7 // javax.naming.directory.Attributes keepAttrs
        12: .line 499
            aload 3 /* attrs */
            ifnonnull 30
        13: .line 504
            aload 6 /* origAttrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_0
            aaload
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
        14: .line 503
            astore 8 /* origObjectClass */
        start local 8 // javax.naming.directory.Attribute origObjectClass
        15: .line 506
            aload 8 /* origObjectClass */
            ifnull 24
        16: .line 508
            aload 8 /* origObjectClass */
            invokeinterface javax.naming.directory.Attribute.clone:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attribute
            astore 8 /* origObjectClass */
        17: .line 509
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        18: goto 22
        19: .line 510
      StackMap locals: javax.naming.directory.Attributes javax.naming.directory.Attribute int
      StackMap stack:
            aload 8 /* origObjectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES_LOWER:[Ljava/lang/String;
            iload 9 /* i */
            aaload
            invokeinterface javax.naming.directory.Attribute.remove:(Ljava/lang/Object;)Z
            pop
        20: .line 511
            aload 8 /* origObjectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iload 9 /* i */
            aaload
            invokeinterface javax.naming.directory.Attribute.remove:(Ljava/lang/Object;)Z
            pop
        21: .line 509
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 9 /* i */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            arraylength
            if_icmplt 19
        end local 9 // int i
        23: .line 514
            aload 6 /* origAttrs */
            aload 8 /* origObjectClass */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        24: .line 518
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 9 /* i */
        start local 9 // int i
        25: goto 28
        26: .line 519
      StackMap locals: int
      StackMap stack:
            aload 6 /* origAttrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iload 9 /* i */
            aaload
            invokeinterface javax.naming.directory.Attributes.remove:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            pop
        27: .line 518
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 9 /* i */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            arraylength
            if_icmplt 26
        end local 9 // int i
        29: .line 522
            aload 6 /* origAttrs */
            astore 3 /* attrs */
        end local 8 // javax.naming.directory.Attribute origObjectClass
        30: .line 524
      StackMap locals:
      StackMap stack:
            aload 2 /* obj */
            ifnull 37
        31: .line 526
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
            aload 2 /* obj */
            aload 3 /* attrs */
        32: .line 527
            aload 5 /* inputAttrs */
            aload 3 /* attrs */
            if_acmpeq 33
            iconst_1
            goto 34
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes javax.naming.directory.Attributes
      StackMap stack: int java.lang.Object javax.naming.directory.Attributes
        33: iconst_0
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes javax.naming.directory.Attributes
      StackMap stack: int java.lang.Object javax.naming.directory.Attributes int
        34: aload 1 /* name */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        35: .line 526
            invokestatic com.sun.jndi.ldap.Obj.determineBindAttrs:(CLjava/lang/Object;Ljavax/naming/directory/Attributes;ZLjavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable;)Ljavax/naming/directory/Attributes;
        36: .line 525
            astore 3 /* attrs */
        37: .line 530
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 8 /* newDN */
        start local 8 // java.lang.String newDN
        38: .line 532
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 8 /* newDN */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.delete:(Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 9 /* answer */
        start local 9 // com.sun.jndi.ldap.LdapResult answer
        39: .line 533
            aload 0 /* this */
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        40: .line 535
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 43
        41: .line 536
            aload 0 /* this */
            aload 9 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        42: .line 537
            return
        43: .line 540
      StackMap locals: java.lang.String com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aconst_null
            astore 10 /* addEx */
        start local 10 // java.lang.Exception addEx
        44: .line 542
            aload 8 /* newDN */
            aload 3 /* attrs */
            aload 5 /* inputAttrs */
            aload 3 /* attrs */
            if_acmpeq 45
            iconst_1
            goto 46
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes javax.naming.directory.Attributes java.lang.String com.sun.jndi.ldap.LdapResult java.lang.Exception
      StackMap stack: java.lang.String javax.naming.directory.Attributes
        45: iconst_0
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes javax.naming.directory.Attributes java.lang.String com.sun.jndi.ldap.LdapResult java.lang.Exception
      StackMap stack: java.lang.String javax.naming.directory.Attributes int
        46: invokestatic com.sun.jndi.ldap.LdapCtx.addRdnAttributes:(Ljava/lang/String;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/Attributes;
            astore 3 /* attrs */
        47: .line 545
            new com.sun.jndi.ldap.LdapEntry
            dup
            aload 8 /* newDN */
            aload 3 /* attrs */
            invokespecial com.sun.jndi.ldap.LdapEntry.<init>:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)V
            astore 11 /* entry */
        start local 11 // com.sun.jndi.ldap.LdapEntry entry
        48: .line 546
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 11 /* entry */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.add:(Lcom/sun/jndi/ldap/LdapEntry;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 9 /* answer */
        49: .line 547
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            ifnull 57
        50: .line 548
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            invokestatic com.sun.jndi.ldap.LdapCtx.appendVector:(Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        end local 11 // com.sun.jndi.ldap.LdapEntry entry
        51: .line 550
            goto 57
      StackMap locals:
      StackMap stack: javax.naming.NamingException
        52: astore 11 /* ae */
        start local 11 // javax.naming.NamingException ae
        53: .line 551
            aload 11 /* ae */
            astore 10 /* addEx */
        end local 11 // javax.naming.NamingException ae
        54: goto 57
        55: .line 552
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 11 /* ae */
        start local 11 // java.io.IOException ae
        56: .line 553
            aload 11 /* ae */
            astore 10 /* addEx */
        end local 11 // java.io.IOException ae
        57: .line 556
      StackMap locals:
      StackMap stack:
            aload 10 /* addEx */
            ifnull 58
            aload 10 /* addEx */
            instanceof com.sun.jndi.ldap.LdapReferralException
            ifeq 59
        58: .line 557
      StackMap locals:
      StackMap stack:
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 65
        59: .line 560
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            new com.sun.jndi.ldap.LdapEntry
            dup
            aload 8 /* newDN */
            aload 7 /* keepAttrs */
            invokespecial com.sun.jndi.ldap.LdapEntry.<init>:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)V
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.add:(Lcom/sun/jndi/ldap/LdapEntry;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
        60: .line 559
            astore 11 /* answer2 */
        start local 11 // com.sun.jndi.ldap.LdapResult answer2
        61: .line 561
            aload 11 /* answer2 */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            ifnull 63
        62: .line 562
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            aload 11 /* answer2 */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            invokestatic com.sun.jndi.ldap.LdapCtx.appendVector:(Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        63: .line 565
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 10 /* addEx */
            ifnonnull 65
        64: .line 566
            aload 0 /* this */
            aload 9 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 11 // com.sun.jndi.ldap.LdapResult answer2
        65: .line 571
      StackMap locals:
      StackMap stack:
            aload 10 /* addEx */
            instanceof javax.naming.NamingException
            ifeq 67
        66: .line 572
            aload 10 /* addEx */
            checkcast javax.naming.NamingException
            athrow
        67: .line 573
      StackMap locals:
      StackMap stack:
            aload 10 /* addEx */
            instanceof java.io.IOException
            ifeq 90
        68: .line 574
            aload 10 /* addEx */
            checkcast java.io.IOException
            athrow
        end local 10 // java.lang.Exception addEx
        end local 9 // com.sun.jndi.ldap.LdapResult answer
        end local 8 // java.lang.String newDN
        end local 7 // javax.naming.directory.Attributes keepAttrs
        end local 6 // javax.naming.directory.Attributes origAttrs
        69: .line 577
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 6 /* e */
        start local 6 // com.sun.jndi.ldap.LdapReferralException e
        70: .line 578
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 72
        71: .line 579
            aload 4 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        72: .line 585
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 6 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        73: .line 584
            astore 7 /* refCtx */
        start local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        74: .line 590
            aload 7 /* refCtx */
            aload 1 /* name */
            aload 2 /* obj */
            aload 5 /* inputAttrs */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.rebind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;)V
        75: .line 599
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        76: .line 591
            return
        77: .line 593
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 8 /* re */
        start local 8 // com.sun.jndi.ldap.LdapReferralException re
        78: .line 594
            aload 8 /* re */
            astore 6 /* e */
        79: .line 599
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        80: .line 595
            goto 72
        end local 8 // com.sun.jndi.ldap.LdapReferralException re
        81: .line 597
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        82: .line 599
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        83: .line 600
            aload 9
            athrow
        end local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 6 // com.sun.jndi.ldap.LdapReferralException e
        84: .line 603
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        85: .line 604
            new javax.naming.CommunicationException
            dup
            aload 6 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 7 /* e2 */
        start local 7 // javax.naming.NamingException e2
        86: .line 605
            aload 7 /* e2 */
            aload 6 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        87: .line 606
            aload 4 /* cont */
            aload 7 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 7 // javax.naming.NamingException e2
        end local 6 // java.io.IOException e
        88: .line 608
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 6 /* e */
        start local 6 // javax.naming.NamingException e
        89: .line 609
            aload 4 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e
        90: .line 611
      StackMap locals:
      StackMap stack:
            return
        end local 5 // javax.naming.directory.Attributes inputAttrs
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // javax.naming.directory.Attributes attrs
        end local 2 // java.lang.Object obj
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   91     0             this  Lcom/sun/jndi/ldap/LdapCtx;
            0   91     1             name  Ljavax/naming/Name;
            0   91     2              obj  Ljava/lang/Object;
            0   91     3            attrs  Ljavax/naming/directory/Attributes;
            0   91     4             cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   91     5       inputAttrs  Ljavax/naming/directory/Attributes;
            3   69     6        origAttrs  Ljavax/naming/directory/Attributes;
           12   69     7        keepAttrs  Ljavax/naming/directory/Attributes;
           15   30     8  origObjectClass  Ljavax/naming/directory/Attribute;
           18   23     9                i  I
           25   29     9                i  I
           38   69     8            newDN  Ljava/lang/String;
           39   69     9           answer  Lcom/sun/jndi/ldap/LdapResult;
           44   69    10            addEx  Ljava/lang/Exception;
           48   51    11            entry  Lcom/sun/jndi/ldap/LdapEntry;
           53   54    11               ae  Ljavax/naming/NamingException;
           56   57    11               ae  Ljava/io/IOException;
           61   65    11          answer2  Lcom/sun/jndi/ldap/LdapResult;
           70   84     6                e  Lcom/sun/jndi/ldap/LdapReferralException;
           74   84     7           refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           78   81     8               re  Lcom/sun/jndi/ldap/LdapReferralException;
           85   88     6                e  Ljava/io/IOException;
           86   88     7               e2  Ljavax/naming/NamingException;
           89   90     6                e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           3     4       5  Class javax.naming.NameNotFoundException
          44    51      52  Class javax.naming.NamingException
          44    51      55  Class java.io.IOException
           2     8      69  Class com.sun.jndi.ldap.LdapReferralException
           9    42      69  Class com.sun.jndi.ldap.LdapReferralException
          43    69      69  Class com.sun.jndi.ldap.LdapReferralException
          74    75      77  Class com.sun.jndi.ldap.LdapReferralException
          74    75      81  any
          77    79      81  any
           2     8      84  Class java.io.IOException
           9    42      84  Class java.io.IOException
          43    69      84  Class java.io.IOException
           2     8      88  Class javax.naming.NamingException
           9    42      88  Class javax.naming.NamingException
          43    69      88  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      name   
      obj    
      attrs  
      cont   

  protected void c_unbind(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 615
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 618
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         2: .line 620
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 3 /* fname */
        start local 3 // java.lang.String fname
         3: .line 621
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 3 /* fname */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.delete:(Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 4 /* answer */
        start local 4 // com.sun.jndi.ldap.LdapResult answer
         4: .line 622
            aload 0 /* this */
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         5: .line 624
            aload 0 /* this */
            aload 3 /* fname */
            aload 4 /* answer */
            invokevirtual com.sun.jndi.ldap.LdapCtx.adjustDeleteStatus:(Ljava/lang/String;Lcom/sun/jndi/ldap/LdapResult;)V
         6: .line 626
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 30
         7: .line 627
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 4 // com.sun.jndi.ldap.LdapResult answer
        end local 3 // java.lang.String fname
         8: .line 630
            goto 30
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
         9: astore 3 /* e */
        start local 3 // com.sun.jndi.ldap.LdapReferralException e
        10: .line 631
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 12
        11: .line 632
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        12: .line 638
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 3 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        13: .line 637
            astore 4 /* refCtx */
        start local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        14: .line 643
            aload 4 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.unbind:(Ljavax/naming/Name;)V
        15: .line 652
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        16: .line 644
            return
        17: .line 646
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* re */
        start local 5 // com.sun.jndi.ldap.LdapReferralException re
        18: .line 647
            aload 5 /* re */
            astore 3 /* e */
        19: .line 652
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        20: .line 648
            goto 12
        end local 5 // com.sun.jndi.ldap.LdapReferralException re
        21: .line 650
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        22: .line 652
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        23: .line 653
            aload 6
            athrow
        end local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 3 // com.sun.jndi.ldap.LdapReferralException e
        24: .line 656
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        25: .line 657
            new javax.naming.CommunicationException
            dup
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 4 /* e2 */
        start local 4 // javax.naming.NamingException e2
        26: .line 658
            aload 4 /* e2 */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        27: .line 659
            aload 2 /* cont */
            aload 4 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 4 // javax.naming.NamingException e2
        end local 3 // java.io.IOException e
        28: .line 661
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 3 /* e */
        start local 3 // javax.naming.NamingException e
        29: .line 662
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 3 // javax.naming.NamingException e
        30: .line 664
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   31     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   31     1    name  Ljavax/naming/Name;
            0   31     2    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            3    8     3   fname  Ljava/lang/String;
            4    8     4  answer  Lcom/sun/jndi/ldap/LdapResult;
           10   24     3       e  Lcom/sun/jndi/ldap/LdapReferralException;
           14   24     4  refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           18   21     5      re  Lcom/sun/jndi/ldap/LdapReferralException;
           25   28     3       e  Ljava/io/IOException;
           26   28     4      e2  Ljavax/naming/NamingException;
           29   30     3       e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     8       9  Class com.sun.jndi.ldap.LdapReferralException
          14    15      17  Class com.sun.jndi.ldap.LdapReferralException
          14    15      21  any
          17    19      21  any
           1     8      24  Class java.io.IOException
           1     8      28  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected void c_rename(javax.naming.Name, javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=14, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name oldName
        start local 2 // javax.naming.Name newName
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 671
            aconst_null
            astore 8 /* newRDN */
        start local 8 // java.lang.String newRDN
         1: .line 672
            aconst_null
            astore 9 /* newSuperior */
        start local 9 // java.lang.String newSuperior
         2: .line 676
            aload 3 /* cont */
            aload 0 /* this */
            aload 1 /* oldName */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         3: .line 679
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         4: .line 682
            aload 1 /* oldName */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 7
         5: .line 683
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            ldc ""
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 6 /* oldParent */
        start local 6 // javax.naming.Name oldParent
         6: .line 684
            goto 9
        end local 6 // javax.naming.Name oldParent
         7: .line 685
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top top top java.lang.String java.lang.String
      StackMap stack:
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 1 /* oldName */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 4 /* oldParsed */
        start local 4 // javax.naming.Name oldParsed
         8: .line 686
            aload 4 /* oldParsed */
            aload 4 /* oldParsed */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            isub
            invokeinterface javax.naming.Name.getPrefix:(I)Ljavax/naming/Name;
            astore 6 /* oldParent */
        end local 4 // javax.naming.Name oldParsed
        start local 6 // javax.naming.Name oldParent
         9: .line 689
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top javax.naming.Name top java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* newName */
            instanceof javax.naming.CompositeName
            ifeq 12
        10: .line 690
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 2 /* newName */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 5 /* newParsed */
        start local 5 // javax.naming.Name newParsed
        11: .line 691
            goto 13
        end local 5 // javax.naming.Name newParsed
        12: .line 692
      StackMap locals:
      StackMap stack:
            aload 2 /* newName */
            astore 5 /* newParsed */
        start local 5 // javax.naming.Name newParsed
        13: .line 694
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top javax.naming.Name javax.naming.Name top java.lang.String java.lang.String
      StackMap stack:
            aload 5 /* newParsed */
            aload 5 /* newParsed */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            isub
            invokeinterface javax.naming.Name.getPrefix:(I)Ljavax/naming/Name;
            astore 7 /* newParent */
        start local 7 // javax.naming.Name newParent
        14: .line 696
            aload 6 /* oldParent */
            aload 7 /* newParent */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 20
        15: .line 697
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifne 19
        16: .line 698
            new javax.naming.InvalidNameException
            dup
        17: .line 699
            ldc "LDAPv2 doesn't support changing the parent as a result of a rename"
        18: .line 698
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 702
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top javax.naming.Name javax.naming.Name javax.naming.Name java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 7 /* newParent */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* newSuperior */
        20: .line 706
      StackMap locals:
      StackMap stack:
            aload 5 /* newParsed */
            aload 5 /* newParsed */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            isub
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            astore 8 /* newRDN */
        21: .line 708
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 0 /* this */
            aload 1 /* oldName */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
        22: .line 709
            aload 8 /* newRDN */
        23: .line 710
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
        24: .line 711
            aload 9 /* newSuperior */
        25: .line 712
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        26: .line 708
            invokevirtual com.sun.jndi.ldap.LdapClient.moddn:(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 10 /* answer */
        start local 10 // com.sun.jndi.ldap.LdapResult answer
        27: .line 713
            aload 0 /* this */
            aload 10 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        28: .line 715
            aload 10 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 61
        29: .line 716
            aload 0 /* this */
            aload 10 /* answer */
            aload 1 /* oldName */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 10 // com.sun.jndi.ldap.LdapResult answer
        30: .line 719
            goto 61
        end local 7 // javax.naming.Name newParent
        end local 6 // javax.naming.Name oldParent
        end local 5 // javax.naming.Name newParsed
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top top top java.lang.String java.lang.String
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        31: astore 10 /* e */
        start local 10 // com.sun.jndi.ldap.LdapReferralException e
        32: .line 722
            aload 10 /* e */
            aload 8 /* newRDN */
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setNewRdn:(Ljava/lang/String;)V
        33: .line 727
            aload 9 /* newSuperior */
            ifnull 41
        34: .line 728
            new javax.naming.PartialResultException
            dup
        35: .line 729
            new java.lang.StringBuilder
            dup
            ldc "Cannot continue referral processing when newSuperior is nonempty: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        36: .line 730
            aload 9 /* newSuperior */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        37: .line 729
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        38: .line 728
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 11 /* pre */
        start local 11 // javax.naming.PartialResultException pre
        39: .line 731
            aload 11 /* pre */
            aload 3 /* cont */
            aload 10 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            invokevirtual javax.naming.PartialResultException.setRootCause:(Ljava/lang/Throwable;)V
        40: .line 732
            aload 3 /* cont */
            aload 11 /* pre */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 11 // javax.naming.PartialResultException pre
        41: .line 735
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 43
        42: .line 736
            aload 3 /* cont */
            aload 10 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        43: .line 742
      StackMap locals:
      StackMap stack:
            aload 10 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        44: .line 741
            astore 11 /* refCtx */
        start local 11 // com.sun.jndi.ldap.LdapReferralContext refCtx
        45: .line 747
            aload 11 /* refCtx */
            aload 1 /* oldName */
            aload 2 /* newName */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.rename:(Ljavax/naming/Name;Ljavax/naming/Name;)V
        46: .line 756
            aload 11 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        47: .line 748
            return
        48: .line 750
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top top top java.lang.String java.lang.String com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 12 /* re */
        start local 12 // com.sun.jndi.ldap.LdapReferralException re
        49: .line 751
            aload 12 /* re */
            astore 10 /* e */
        50: .line 756
            aload 11 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        51: .line 752
            goto 43
        end local 12 // com.sun.jndi.ldap.LdapReferralException re
        52: .line 754
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 13
        53: .line 756
            aload 11 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        54: .line 757
            aload 13
            athrow
        end local 11 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 10 // com.sun.jndi.ldap.LdapReferralException e
        55: .line 760
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top top top java.lang.String java.lang.String
      StackMap stack: java.io.IOException
            astore 10 /* e */
        start local 10 // java.io.IOException e
        56: .line 761
            new javax.naming.CommunicationException
            dup
            aload 10 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 11 /* e2 */
        start local 11 // javax.naming.NamingException e2
        57: .line 762
            aload 11 /* e2 */
            aload 10 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        58: .line 763
            aload 3 /* cont */
            aload 11 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 11 // javax.naming.NamingException e2
        end local 10 // java.io.IOException e
        59: .line 765
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 10 /* e */
        start local 10 // javax.naming.NamingException e
        60: .line 766
            aload 3 /* cont */
            aload 10 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 10 // javax.naming.NamingException e
        start local 5 // javax.naming.Name newParsed
        start local 6 // javax.naming.Name oldParent
        start local 7 // javax.naming.Name newParent
        61: .line 768
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top javax.naming.Name javax.naming.Name javax.naming.Name java.lang.String java.lang.String
      StackMap stack:
            return
        end local 9 // java.lang.String newSuperior
        end local 8 // java.lang.String newRDN
        end local 7 // javax.naming.Name newParent
        end local 6 // javax.naming.Name oldParent
        end local 5 // javax.naming.Name newParsed
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // javax.naming.Name newName
        end local 1 // javax.naming.Name oldName
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   62     0         this  Lcom/sun/jndi/ldap/LdapCtx;
            0   62     1      oldName  Ljavax/naming/Name;
            0   62     2      newName  Ljavax/naming/Name;
            0   62     3         cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            8    9     4    oldParsed  Ljavax/naming/Name;
           11   12     5    newParsed  Ljavax/naming/Name;
           13   31     5    newParsed  Ljavax/naming/Name;
           61   62     5    newParsed  Ljavax/naming/Name;
            6    7     6    oldParent  Ljavax/naming/Name;
            9   31     6    oldParent  Ljavax/naming/Name;
           61   62     6    oldParent  Ljavax/naming/Name;
           14   31     7    newParent  Ljavax/naming/Name;
           61   62     7    newParent  Ljavax/naming/Name;
            1   62     8       newRDN  Ljava/lang/String;
            2   62     9  newSuperior  Ljava/lang/String;
           27   30    10       answer  Lcom/sun/jndi/ldap/LdapResult;
           32   55    10            e  Lcom/sun/jndi/ldap/LdapReferralException;
           39   41    11          pre  Ljavax/naming/PartialResultException;
           45   55    11       refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           49   52    12           re  Lcom/sun/jndi/ldap/LdapReferralException;
           56   59    10            e  Ljava/io/IOException;
           57   59    11           e2  Ljavax/naming/NamingException;
           60   61    10            e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           3    30      31  Class com.sun.jndi.ldap.LdapReferralException
          45    46      48  Class com.sun.jndi.ldap.LdapReferralException
          45    46      52  any
          48    50      52  any
           3    30      55  Class java.io.IOException
           3    30      59  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      oldName  
      newName  
      cont     

  protected javax.naming.Context c_createSubcontext(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/Context;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 772
            aload 0 /* this */
            aload 1 /* name */
            aconst_null
            aload 2 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_createSubcontext:(Ljavax/naming/Name;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
            areturn
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    1     1  name  Ljavax/naming/Name;
            0    1     2  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.directory.DirContext c_createSubcontext(javax.naming.Name, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.directory.Attributes attrs
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 778
            aload 3 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 780
            aload 2 /* attrs */
            astore 4 /* inputAttrs */
        start local 4 // javax.naming.directory.Attributes inputAttrs
         2: .line 782
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         3: .line 783
            aload 2 /* attrs */
            ifnonnull 11
         4: .line 785
            new javax.naming.directory.BasicAttribute
            dup
         5: .line 786
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_0
            aaload
         6: .line 787
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iconst_0
            aaload
         7: .line 785
            invokespecial javax.naming.directory.BasicAttribute.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 5 /* oc */
        start local 5 // javax.naming.directory.Attribute oc
         8: .line 788
            aload 5 /* oc */
            ldc "top"
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
         9: .line 789
            new javax.naming.directory.BasicAttributes
            dup
            iconst_1
            invokespecial javax.naming.directory.BasicAttributes.<init>:(Z)V
            astore 2 /* attrs */
        10: .line 790
            aload 2 /* attrs */
            aload 5 /* oc */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        end local 5 // javax.naming.directory.Attribute oc
        11: .line 792
      StackMap locals: javax.naming.directory.Attributes
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 5 /* newDN */
        start local 5 // java.lang.String newDN
        12: .line 793
            aload 5 /* newDN */
            aload 2 /* attrs */
            aload 4 /* inputAttrs */
            aload 2 /* attrs */
            if_acmpeq 13
            iconst_1
            goto 14
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes java.lang.String
      StackMap stack: java.lang.String javax.naming.directory.Attributes
        13: iconst_0
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes java.lang.String
      StackMap stack: java.lang.String javax.naming.directory.Attributes int
        14: invokestatic com.sun.jndi.ldap.LdapCtx.addRdnAttributes:(Ljava/lang/String;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/Attributes;
            astore 2 /* attrs */
        15: .line 795
            new com.sun.jndi.ldap.LdapEntry
            dup
            aload 5 /* newDN */
            aload 2 /* attrs */
            invokespecial com.sun.jndi.ldap.LdapEntry.<init>:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)V
            astore 6 /* entry */
        start local 6 // com.sun.jndi.ldap.LdapEntry entry
        16: .line 797
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 6 /* entry */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.add:(Lcom/sun/jndi/ldap/LdapEntry;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 7 /* answer */
        start local 7 // com.sun.jndi.ldap.LdapResult answer
        17: .line 798
            aload 0 /* this */
            aload 7 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        18: .line 800
            aload 7 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 21
        19: .line 801
            aload 0 /* this */
            aload 7 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        20: .line 802
            aconst_null
            areturn
        21: .line 806
      StackMap locals: com.sun.jndi.ldap.LdapEntry com.sun.jndi.ldap.LdapResult
      StackMap stack:
            new com.sun.jndi.ldap.LdapCtx
            dup
            aload 0 /* this */
            aload 5 /* newDN */
            invokespecial com.sun.jndi.ldap.LdapCtx.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Ljava/lang/String;)V
        22: areturn
        end local 7 // com.sun.jndi.ldap.LdapResult answer
        end local 6 // com.sun.jndi.ldap.LdapEntry entry
        end local 5 // java.lang.String newDN
        23: .line 808
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        24: .line 809
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 26
        25: .line 810
            aload 3 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        26: .line 816
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        27: .line 815
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        28: .line 821
            aload 6 /* refCtx */
            aload 1 /* name */
            aload 4 /* inputAttrs */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.createSubcontext:(Ljavax/naming/Name;Ljavax/naming/directory/Attributes;)Ljavax/naming/directory/DirContext;
            astore 9
        29: .line 829
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        30: .line 821
            aload 9
            areturn
        31: .line 823
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        32: .line 824
            aload 7 /* re */
            astore 5 /* e */
        33: .line 829
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        34: .line 825
            goto 26
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        35: .line 827
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        36: .line 829
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        37: .line 830
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        38: .line 833
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        39: .line 834
            new javax.naming.CommunicationException
            dup
            aload 5 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 6 /* e2 */
        start local 6 // javax.naming.NamingException e2
        40: .line 835
            aload 6 /* e2 */
            aload 5 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        41: .line 836
            aload 3 /* cont */
            aload 6 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e2
        end local 5 // java.io.IOException e
        42: .line 838
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        43: .line 839
            aload 3 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        end local 4 // javax.naming.directory.Attributes inputAttrs
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // javax.naming.directory.Attributes attrs
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   44     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   44     1        name  Ljavax/naming/Name;
            0   44     2       attrs  Ljavax/naming/directory/Attributes;
            0   44     3        cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   44     4  inputAttrs  Ljavax/naming/directory/Attributes;
            8   11     5          oc  Ljavax/naming/directory/Attribute;
           12   23     5       newDN  Ljava/lang/String;
           16   23     6       entry  Lcom/sun/jndi/ldap/LdapEntry;
           17   23     7      answer  Lcom/sun/jndi/ldap/LdapResult;
           24   38     5           e  Lcom/sun/jndi/ldap/LdapReferralException;
           28   38     6      refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           32   35     7          re  Lcom/sun/jndi/ldap/LdapReferralException;
           39   42     5           e  Ljava/io/IOException;
           40   42     6          e2  Ljavax/naming/NamingException;
           43   44     5           e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2    20      23  Class com.sun.jndi.ldap.LdapReferralException
          21    22      23  Class com.sun.jndi.ldap.LdapReferralException
          28    29      31  Class com.sun.jndi.ldap.LdapReferralException
          28    29      35  any
          31    33      35  any
           2    20      38  Class java.io.IOException
          21    22      38  Class java.io.IOException
           2    20      42  Class javax.naming.NamingException
          21    22      42  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      name   
      attrs  
      cont   

  protected void c_destroySubcontext(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 845
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 848
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         2: .line 850
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 3 /* fname */
        start local 3 // java.lang.String fname
         3: .line 851
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 3 /* fname */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.delete:(Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 4 /* answer */
        start local 4 // com.sun.jndi.ldap.LdapResult answer
         4: .line 852
            aload 0 /* this */
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         5: .line 854
            aload 0 /* this */
            aload 3 /* fname */
            aload 4 /* answer */
            invokevirtual com.sun.jndi.ldap.LdapCtx.adjustDeleteStatus:(Ljava/lang/String;Lcom/sun/jndi/ldap/LdapResult;)V
         6: .line 856
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 30
         7: .line 857
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 4 // com.sun.jndi.ldap.LdapResult answer
        end local 3 // java.lang.String fname
         8: .line 860
            goto 30
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
         9: astore 3 /* e */
        start local 3 // com.sun.jndi.ldap.LdapReferralException e
        10: .line 861
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 12
        11: .line 862
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        12: .line 868
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 3 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        13: .line 867
            astore 4 /* refCtx */
        start local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        14: .line 873
            aload 4 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.destroySubcontext:(Ljavax/naming/Name;)V
        15: .line 880
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        16: .line 874
            return
        17: .line 875
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* re */
        start local 5 // com.sun.jndi.ldap.LdapReferralException re
        18: .line 876
            aload 5 /* re */
            astore 3 /* e */
        19: .line 880
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        20: .line 877
            goto 12
        end local 5 // com.sun.jndi.ldap.LdapReferralException re
        21: .line 878
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        22: .line 880
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        23: .line 881
            aload 6
            athrow
        end local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 3 // com.sun.jndi.ldap.LdapReferralException e
        24: .line 883
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        25: .line 884
            new javax.naming.CommunicationException
            dup
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 4 /* e2 */
        start local 4 // javax.naming.NamingException e2
        26: .line 885
            aload 4 /* e2 */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        27: .line 886
            aload 2 /* cont */
            aload 4 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 4 // javax.naming.NamingException e2
        end local 3 // java.io.IOException e
        28: .line 887
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 3 /* e */
        start local 3 // javax.naming.NamingException e
        29: .line 888
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 3 // javax.naming.NamingException e
        30: .line 890
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   31     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   31     1    name  Ljavax/naming/Name;
            0   31     2    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            3    8     3   fname  Ljava/lang/String;
            4    8     4  answer  Lcom/sun/jndi/ldap/LdapResult;
           10   24     3       e  Lcom/sun/jndi/ldap/LdapReferralException;
           14   24     4  refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           18   21     5      re  Lcom/sun/jndi/ldap/LdapReferralException;
           25   28     3       e  Ljava/io/IOException;
           26   28     4      e2  Ljavax/naming/NamingException;
           29   30     3       e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     8       9  Class com.sun.jndi.ldap.LdapReferralException
          14    15      17  Class com.sun.jndi.ldap.LdapReferralException
          14    15      21  any
          17    19      21  any
           1     8      24  Class java.io.IOException
           1     8      28  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  private static javax.naming.directory.Attributes addRdnAttributes(java.lang.String, javax.naming.directory.Attributes, boolean);
    descriptor: (Ljava/lang/String;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/Attributes;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // java.lang.String dn
        start local 1 // javax.naming.directory.Attributes attrs
        start local 2 // boolean directUpdate
         0: .line 906
            aload 0 /* dn */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 907
            aload 1 /* attrs */
            areturn
         2: .line 912
      StackMap locals:
      StackMap stack:
            new javax.naming.ldap.LdapName
            dup
            aload 0 /* dn */
            invokespecial javax.naming.ldap.LdapName.<init>:(Ljava/lang/String;)V
            invokevirtual javax.naming.ldap.LdapName.getRdns:()Ljava/util/List;
            astore 3 /* rdnList */
        start local 3 // java.util.List rdnList
         3: .line 916
            aload 3 /* rdnList */
            aload 3 /* rdnList */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.naming.ldap.Rdn
            astore 4 /* rdn */
        start local 4 // javax.naming.ldap.Rdn rdn
         4: .line 917
            aload 4 /* rdn */
            invokevirtual javax.naming.ldap.Rdn.toAttributes:()Ljavax/naming/directory/Attributes;
            astore 5 /* nameAttrs */
        start local 5 // javax.naming.directory.Attributes nameAttrs
         5: .line 920
            aload 5 /* nameAttrs */
            invokeinterface javax.naming.directory.Attributes.getAll:()Ljavax/naming/NamingEnumeration;
            astore 6 /* enum_ */
        start local 6 // javax.naming.NamingEnumeration enum_
         6: .line 922
            goto 16
         7: .line 923
      StackMap locals: java.lang.String javax.naming.directory.Attributes int java.util.List javax.naming.ldap.Rdn javax.naming.directory.Attributes javax.naming.NamingEnumeration
      StackMap stack:
            aload 6 /* enum_ */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attribute
            astore 7 /* nameAttr */
        start local 7 // javax.naming.directory.Attribute nameAttr
         8: .line 926
            aload 1 /* attrs */
            aload 7 /* nameAttr */
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            ifnonnull 16
         9: .line 937
            aload 1 /* attrs */
            invokeinterface javax.naming.directory.Attributes.isCaseIgnored:()Z
            ifne 12
        10: .line 938
            aload 1 /* attrs */
            invokeinterface javax.naming.directory.Attributes.getIDs:()Ljavax/naming/NamingEnumeration;
            aload 7 /* nameAttr */
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapCtx.containsIgnoreCase:(Ljavax/naming/NamingEnumeration;Ljava/lang/String;)Z
            ifeq 12
        11: .line 939
            goto 16
        12: .line 942
      StackMap locals: javax.naming.directory.Attribute
      StackMap stack:
            iload 2 /* directUpdate */
            ifne 15
        13: .line 943
            aload 1 /* attrs */
            invokeinterface javax.naming.directory.Attributes.clone:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attributes
            astore 1 /* attrs */
        14: .line 944
            iconst_1
            istore 2 /* directUpdate */
        15: .line 946
      StackMap locals:
      StackMap stack:
            aload 1 /* attrs */
            aload 7 /* nameAttr */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        end local 7 // javax.naming.directory.Attribute nameAttr
        16: .line 922
      StackMap locals:
      StackMap stack:
            aload 6 /* enum_ */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 7
        17: .line 950
            aload 1 /* attrs */
            areturn
        end local 6 // javax.naming.NamingEnumeration enum_
        end local 5 // javax.naming.directory.Attributes nameAttrs
        end local 4 // javax.naming.ldap.Rdn rdn
        end local 3 // java.util.List rdnList
        end local 2 // boolean directUpdate
        end local 1 // javax.naming.directory.Attributes attrs
        end local 0 // java.lang.String dn
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0            dn  Ljava/lang/String;
            0   18     1         attrs  Ljavax/naming/directory/Attributes;
            0   18     2  directUpdate  Z
            3   18     3       rdnList  Ljava/util/List;
            4   18     4           rdn  Ljavax/naming/ldap/Rdn;
            5   18     5     nameAttrs  Ljavax/naming/directory/Attributes;
            6   18     6         enum_  Ljavax/naming/NamingEnumeration;
            8   16     7      nameAttr  Ljavax/naming/directory/Attribute;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
              Name  Flags
      dn            
      attrs         
      directUpdate  

  private static boolean containsIgnoreCase(javax.naming.NamingEnumeration, java.lang.String);
    descriptor: (Ljavax/naming/NamingEnumeration;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.naming.NamingEnumeration enumStr
        start local 1 // java.lang.String str
         0: .line 958
            goto 4
         1: .line 959
      StackMap locals:
      StackMap stack:
            aload 0 /* enumStr */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* strEntry */
        start local 2 // java.lang.String strEntry
         2: .line 960
            aload 2 /* strEntry */
            aload 1 /* str */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 961
            iconst_1
            ireturn
        end local 2 // java.lang.String strEntry
         4: .line 958
      StackMap locals:
      StackMap stack:
            aload 0 /* enumStr */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 1
         5: .line 964
            iconst_0
            ireturn
        end local 1 // java.lang.String str
        end local 0 // javax.naming.NamingEnumeration enumStr
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0   enumStr  Ljavax/naming/NamingEnumeration;
            0    6     1       str  Ljava/lang/String;
            2    4     2  strEntry  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      enumStr  
      str      

  private void adjustDeleteStatus(java.lang.String, com.sun.jndi.ldap.LdapResult);
    descriptor: (Ljava/lang/String;Lcom/sun/jndi/ldap/LdapResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String fname
        start local 2 // com.sun.jndi.ldap.LdapResult answer
         0: .line 969
            aload 2 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            bipush 32
            if_icmpne 8
         1: .line 970
            aload 2 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.matchedDN:Ljava/lang/String;
            ifnull 8
         2: .line 974
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 1 /* fname */
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 3 /* orig */
        start local 3 // javax.naming.Name orig
         3: .line 975
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 2 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.matchedDN:Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 4 /* matched */
        start local 4 // javax.naming.Name matched
         4: .line 976
            aload 3 /* orig */
            invokeinterface javax.naming.Name.size:()I
            aload 4 /* matched */
            invokeinterface javax.naming.Name.size:()I
            isub
            iconst_1
            if_icmpne 8
         5: .line 977
            aload 2 /* answer */
            iconst_0
            putfield com.sun.jndi.ldap.LdapResult.status:I
        end local 4 // javax.naming.Name matched
        end local 3 // javax.naming.Name orig
         6: .line 978
            goto 8
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         7: pop
         8: .line 980
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.sun.jndi.ldap.LdapResult answer
        end local 1 // java.lang.String fname
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0    9     1    fname  Ljava/lang/String;
            0    9     2   answer  Lcom/sun/jndi/ldap/LdapResult;
            3    6     3     orig  Ljavax/naming/Name;
            4    6     4  matched  Ljavax/naming/Name;
      Exception table:
        from    to  target  type
           2     6       7  Class javax.naming.NamingException
    MethodParameters:
        Name  Flags
      fname   
      answer  

  private static java.util.Vector appendVector(java.util.Vector, java.util.Vector);
    descriptor: (Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.util.Vector v1
        start local 1 // java.util.Vector v2
         0: .line 987
            aload 0 /* v1 */
            ifnonnull 3
         1: .line 988
            aload 1 /* v2 */
            astore 0 /* v1 */
         2: .line 989
            goto 8
         3: .line 990
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 7
         5: .line 991
      StackMap locals: int
      StackMap stack:
            aload 0 /* v1 */
            aload 1 /* v2 */
            iload 2 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         6: .line 990
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 1 /* v2 */
            invokevirtual java.util.Vector.size:()I
            if_icmplt 5
        end local 2 // int i
         8: .line 994
      StackMap locals:
      StackMap stack:
            aload 0 /* v1 */
            areturn
        end local 1 // java.util.Vector v2
        end local 0 // java.util.Vector v1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0    v1  Ljava/util/Vector;
            0    9     1    v2  Ljava/util/Vector;
            4    8     2     i  I
    MethodParameters:
      Name  Flags
      v1    
      v2    

  protected java.lang.Object c_lookupLink(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1003
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_lookup:(Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljava/lang/Object;
            areturn
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    1     1  name  Ljavax/naming/Name;
            0    1     2  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected java.lang.Object c_lookup(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1008
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1009
            aconst_null
            astore 3 /* obj */
        start local 3 // java.lang.Object obj
         2: .line 1013
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 5 /* cons */
        start local 5 // javax.naming.directory.SearchControls cons
         3: .line 1014
            aload 5 /* cons */
            iconst_0
            invokevirtual javax.naming.directory.SearchControls.setSearchScope:(I)V
         4: .line 1015
            aload 5 /* cons */
            aconst_null
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         5: .line 1016
            aload 5 /* cons */
            iconst_1
            invokevirtual javax.naming.directory.SearchControls.setReturningObjFlag:(Z)V
         6: .line 1018
            aload 0 /* this */
            aload 1 /* name */
            ldc "(objectClass=*)"
            aload 5 /* cons */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearchOnce:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Z)Lcom/sun/jndi/ldap/LdapResult;
            astore 6 /* answer */
        start local 6 // com.sun.jndi.ldap.LdapResult answer
         7: .line 1019
            aload 0 /* this */
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         8: .line 1023
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 10
         9: .line 1024
            aload 0 /* this */
            aload 6 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        10: .line 1027
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object top javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            ifnull 11
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            iconst_1
            if_icmpeq 13
        11: .line 1029
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.BasicAttributes
            dup
            iconst_1
            invokespecial javax.naming.directory.BasicAttributes.<init>:(Z)V
            astore 4 /* attrs */
        start local 4 // javax.naming.directory.Attributes attrs
        12: .line 1030
            goto 18
        end local 4 // javax.naming.directory.Attributes attrs
        13: .line 1031
      StackMap locals:
      StackMap stack:
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.sun.jndi.ldap.LdapEntry
            astore 7 /* entry */
        start local 7 // com.sun.jndi.ldap.LdapEntry entry
        14: .line 1032
            aload 7 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.attributes:Ljavax/naming/directory/Attributes;
            astore 4 /* attrs */
        start local 4 // javax.naming.directory.Attributes attrs
        15: .line 1034
            aload 7 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.respCtls:Ljava/util/Vector;
            astore 8 /* entryCtls */
        start local 8 // java.util.Vector entryCtls
        16: .line 1035
            aload 8 /* entryCtls */
            ifnull 18
        17: .line 1036
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            aload 8 /* entryCtls */
            invokestatic com.sun.jndi.ldap.LdapCtx.appendVector:(Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
            pop
        end local 8 // java.util.Vector entryCtls
        end local 7 // com.sun.jndi.ldap.LdapEntry entry
        18: .line 1040
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object javax.naming.directory.Attributes javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 4 /* attrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_2
            aaload
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            ifnull 20
        19: .line 1042
            aload 4 /* attrs */
            invokestatic com.sun.jndi.ldap.Obj.decodeObject:(Ljavax/naming/directory/Attributes;)Ljava/lang/Object;
            astore 3 /* obj */
        20: .line 1044
      StackMap locals:
      StackMap stack:
            aload 3 /* obj */
            ifnonnull 40
        21: .line 1045
            new com.sun.jndi.ldap.LdapCtx
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            invokespecial com.sun.jndi.ldap.LdapCtx.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Ljava/lang/String;)V
            astore 3 /* obj */
        end local 6 // com.sun.jndi.ldap.LdapResult answer
        end local 5 // javax.naming.directory.SearchControls cons
        22: .line 1047
            goto 40
        end local 4 // javax.naming.directory.Attributes attrs
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        23: astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        24: .line 1048
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 26
        25: .line 1049
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        26: .line 1055
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object top com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        27: .line 1054
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        28: .line 1059
            aload 6 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.lookup:(Ljavax/naming/Name;)Ljava/lang/Object;
            astore 9
        29: .line 1067
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        30: .line 1059
            aload 9
            areturn
        31: .line 1061
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object top com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        32: .line 1062
            aload 7 /* re */
            astore 5 /* e */
        33: .line 1067
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        34: .line 1063
            goto 26
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        35: .line 1065
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        36: .line 1067
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        37: .line 1068
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        38: .line 1071
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        39: .line 1072
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        start local 4 // javax.naming.directory.Attributes attrs
        40: .line 1076
      StackMap locals: javax.naming.directory.Attributes
      StackMap stack:
            aload 3 /* obj */
            aload 1 /* name */
        41: .line 1077
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 4 /* attrs */
        42: .line 1076
            invokestatic javax.naming.spi.DirectoryManager.getObjectInstance:(Ljava/lang/Object;Ljavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable;Ljavax/naming/directory/Attributes;)Ljava/lang/Object;
        43: areturn
        44: .line 1079
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        45: .line 1080
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        46: .line 1082
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        47: .line 1083
            new javax.naming.NamingException
            dup
        48: .line 1084
            ldc "problem generating object using object factory"
        49: .line 1083
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 6 /* e2 */
        start local 6 // javax.naming.NamingException e2
        50: .line 1085
            aload 6 /* e2 */
            aload 5 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        51: .line 1086
            aload 2 /* cont */
            aload 6 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e2
        end local 5 // java.lang.Exception e
        end local 4 // javax.naming.directory.Attributes attrs
        end local 3 // java.lang.Object obj
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   52     0       this  Lcom/sun/jndi/ldap/LdapCtx;
            0   52     1       name  Ljavax/naming/Name;
            0   52     2       cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   52     3        obj  Ljava/lang/Object;
           12   13     4      attrs  Ljavax/naming/directory/Attributes;
           15   23     4      attrs  Ljavax/naming/directory/Attributes;
           40   52     4      attrs  Ljavax/naming/directory/Attributes;
            3   22     5       cons  Ljavax/naming/directory/SearchControls;
            7   22     6     answer  Lcom/sun/jndi/ldap/LdapResult;
           14   18     7      entry  Lcom/sun/jndi/ldap/LdapEntry;
           16   18     8  entryCtls  Ljava/util/Vector;
           24   38     5          e  Lcom/sun/jndi/ldap/LdapReferralException;
           28   38     6     refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           32   35     7         re  Lcom/sun/jndi/ldap/LdapReferralException;
           39   40     5          e  Ljavax/naming/NamingException;
           45   46     5          e  Ljavax/naming/NamingException;
           47   52     5          e  Ljava/lang/Exception;
           50   52     6         e2  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2    22      23  Class com.sun.jndi.ldap.LdapReferralException
          28    29      31  Class com.sun.jndi.ldap.LdapReferralException
          28    29      35  any
          31    33      35  any
           2    22      38  Class javax.naming.NamingException
          40    43      44  Class javax.naming.NamingException
          40    43      46  Class java.lang.Exception
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.NamingEnumeration c_list(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1092
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 3 /* cons */
        start local 3 // javax.naming.directory.SearchControls cons
         1: .line 1093
            iconst_2
            anewarray java.lang.String
            astore 4 /* classAttrs */
        start local 4 // java.lang.String[] classAttrs
         2: .line 1095
            aload 4 /* classAttrs */
            iconst_0
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_0
            aaload
            aastore
         3: .line 1096
            aload 4 /* classAttrs */
            iconst_1
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_2
            aaload
            aastore
         4: .line 1097
            aload 3 /* cons */
            aload 4 /* classAttrs */
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         5: .line 1100
            aload 3 /* cons */
            iconst_1
            invokevirtual javax.naming.directory.SearchControls.setReturningObjFlag:(Z)V
         6: .line 1102
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         7: .line 1104
            aconst_null
            astore 5 /* answer */
        start local 5 // com.sun.jndi.ldap.LdapResult answer
         8: .line 1107
            aload 0 /* this */
            aload 1 /* name */
            ldc "(objectClass=*)"
            aload 3 /* cons */
            iconst_1
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearch:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
            astore 5 /* answer */
         9: .line 1110
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifne 11
        10: .line 1111
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnull 12
        11: .line 1112
      StackMap locals: javax.naming.directory.SearchControls java.lang.String[] com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        12: .line 1115
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapNamingEnumeration
            dup
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapNamingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        13: areturn
        14: .line 1117
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 6 /* e */
        start local 6 // com.sun.jndi.ldap.LdapReferralException e
        15: .line 1118
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 17
        16: .line 1119
            aload 2 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        17: .line 1125
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 6 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        18: .line 1124
            astore 7 /* refCtx */
        start local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        19: .line 1130
            aload 7 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.list:(Ljavax/naming/Name;)Ljavax/naming/NamingEnumeration;
            astore 10
        20: .line 1138
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        21: .line 1130
            aload 10
            areturn
        22: .line 1132
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls java.lang.String[] com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 8 /* re */
        start local 8 // com.sun.jndi.ldap.LdapReferralException re
        23: .line 1133
            aload 8 /* re */
            astore 6 /* e */
        24: .line 1138
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        25: .line 1134
            goto 17
        end local 8 // com.sun.jndi.ldap.LdapReferralException re
        26: .line 1136
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        27: .line 1138
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        28: .line 1139
            aload 9
            athrow
        end local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 6 // com.sun.jndi.ldap.LdapReferralException e
        29: .line 1142
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls java.lang.String[] com.sun.jndi.ldap.LdapResult
      StackMap stack: javax.naming.LimitExceededException
            astore 6 /* e */
        start local 6 // javax.naming.LimitExceededException e
        30: .line 1144
            new com.sun.jndi.ldap.LdapNamingEnumeration
            dup
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapNamingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        31: .line 1143
            astore 7 /* res */
        start local 7 // com.sun.jndi.ldap.LdapNamingEnumeration res
        32: .line 1146
            aload 7 /* res */
        33: .line 1147
            aload 2 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            checkcast javax.naming.LimitExceededException
        34: .line 1146
            invokevirtual com.sun.jndi.ldap.LdapNamingEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        35: .line 1148
            aload 7 /* res */
            areturn
        end local 7 // com.sun.jndi.ldap.LdapNamingEnumeration res
        end local 6 // javax.naming.LimitExceededException e
        36: .line 1150
      StackMap locals:
      StackMap stack: javax.naming.PartialResultException
            astore 6 /* e */
        start local 6 // javax.naming.PartialResultException e
        37: .line 1152
            new com.sun.jndi.ldap.LdapNamingEnumeration
            dup
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapNamingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        38: .line 1151
            astore 7 /* res */
        start local 7 // com.sun.jndi.ldap.LdapNamingEnumeration res
        39: .line 1154
            aload 7 /* res */
        40: .line 1155
            aload 2 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            checkcast javax.naming.PartialResultException
        41: .line 1154
            invokevirtual com.sun.jndi.ldap.LdapNamingEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        42: .line 1156
            aload 7 /* res */
            areturn
        end local 7 // com.sun.jndi.ldap.LdapNamingEnumeration res
        end local 6 // javax.naming.PartialResultException e
        43: .line 1158
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 6 /* e */
        start local 6 // javax.naming.NamingException e
        44: .line 1159
            aload 2 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e
        end local 5 // com.sun.jndi.ldap.LdapResult answer
        end local 4 // java.lang.String[] classAttrs
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   45     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   45     1        name  Ljavax/naming/Name;
            0   45     2        cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1   45     3        cons  Ljavax/naming/directory/SearchControls;
            2   45     4  classAttrs  [Ljava/lang/String;
            8   45     5      answer  Lcom/sun/jndi/ldap/LdapResult;
           15   29     6           e  Lcom/sun/jndi/ldap/LdapReferralException;
           19   29     7      refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           23   26     8          re  Lcom/sun/jndi/ldap/LdapReferralException;
           30   36     6           e  Ljavax/naming/LimitExceededException;
           32   36     7         res  Lcom/sun/jndi/ldap/LdapNamingEnumeration;
           37   43     6           e  Ljavax/naming/PartialResultException;
           39   43     7         res  Lcom/sun/jndi/ldap/LdapNamingEnumeration;
           44   45     6           e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           8    13      14  Class com.sun.jndi.ldap.LdapReferralException
          19    20      22  Class com.sun.jndi.ldap.LdapReferralException
          19    20      26  any
          22    24      26  any
           8    13      29  Class javax.naming.LimitExceededException
           8    13      36  Class javax.naming.PartialResultException
           8    13      43  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.NamingEnumeration c_listBindings(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1166
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 3 /* cons */
        start local 3 // javax.naming.directory.SearchControls cons
         1: .line 1167
            aload 3 /* cons */
            aconst_null
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         2: .line 1168
            aload 3 /* cons */
            iconst_1
            invokevirtual javax.naming.directory.SearchControls.setReturningObjFlag:(Z)V
         3: .line 1170
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         4: .line 1172
            aconst_null
            astore 4 /* answer */
        start local 4 // com.sun.jndi.ldap.LdapResult answer
         5: .line 1175
            aload 0 /* this */
            aload 1 /* name */
            ldc "(objectClass=*)"
            aload 3 /* cons */
            iconst_1
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearch:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
            astore 4 /* answer */
         6: .line 1178
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifne 8
         7: .line 1179
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnull 9
         8: .line 1180
      StackMap locals: javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
         9: .line 1183
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapBindingEnumeration
            dup
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapBindingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        10: areturn
        11: .line 1185
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        12: .line 1186
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 14
        13: .line 1187
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        14: .line 1193
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        15: .line 1192
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        16: .line 1198
            aload 6 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.listBindings:(Ljavax/naming/Name;)Ljavax/naming/NamingEnumeration;
            astore 9
        17: .line 1206
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        18: .line 1198
            aload 9
            areturn
        19: .line 1200
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        20: .line 1201
            aload 7 /* re */
            astore 5 /* e */
        21: .line 1206
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        22: .line 1202
            goto 14
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        23: .line 1204
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        24: .line 1206
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        25: .line 1207
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        26: .line 1209
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack: javax.naming.LimitExceededException
            astore 5 /* e */
        start local 5 // javax.naming.LimitExceededException e
        27: .line 1211
            new com.sun.jndi.ldap.LdapBindingEnumeration
            dup
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapBindingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        28: .line 1210
            astore 6 /* res */
        start local 6 // com.sun.jndi.ldap.LdapBindingEnumeration res
        29: .line 1213
            aload 6 /* res */
        30: .line 1214
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            checkcast javax.naming.LimitExceededException
        31: .line 1213
            invokevirtual com.sun.jndi.ldap.LdapBindingEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        32: .line 1215
            aload 6 /* res */
            areturn
        end local 6 // com.sun.jndi.ldap.LdapBindingEnumeration res
        end local 5 // javax.naming.LimitExceededException e
        33: .line 1217
      StackMap locals:
      StackMap stack: javax.naming.PartialResultException
            astore 5 /* e */
        start local 5 // javax.naming.PartialResultException e
        34: .line 1219
            new com.sun.jndi.ldap.LdapBindingEnumeration
            dup
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapBindingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        35: .line 1218
            astore 6 /* res */
        start local 6 // com.sun.jndi.ldap.LdapBindingEnumeration res
        36: .line 1221
            aload 6 /* res */
        37: .line 1222
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            checkcast javax.naming.PartialResultException
        38: .line 1221
            invokevirtual com.sun.jndi.ldap.LdapBindingEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        39: .line 1223
            aload 6 /* res */
            areturn
        end local 6 // com.sun.jndi.ldap.LdapBindingEnumeration res
        end local 5 // javax.naming.PartialResultException e
        40: .line 1225
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        41: .line 1226
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        end local 4 // com.sun.jndi.ldap.LdapResult answer
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   42     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   42     1    name  Ljavax/naming/Name;
            0   42     2    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1   42     3    cons  Ljavax/naming/directory/SearchControls;
            5   42     4  answer  Lcom/sun/jndi/ldap/LdapResult;
           12   26     5       e  Lcom/sun/jndi/ldap/LdapReferralException;
           16   26     6  refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           20   23     7      re  Lcom/sun/jndi/ldap/LdapReferralException;
           27   33     5       e  Ljavax/naming/LimitExceededException;
           29   33     6     res  Lcom/sun/jndi/ldap/LdapBindingEnumeration;
           34   40     5       e  Ljavax/naming/PartialResultException;
           36   40     6     res  Lcom/sun/jndi/ldap/LdapBindingEnumeration;
           41   42     5       e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           5    10      11  Class com.sun.jndi.ldap.LdapReferralException
          16    17      19  Class com.sun.jndi.ldap.LdapReferralException
          16    17      23  any
          19    21      23  any
           5    10      26  Class javax.naming.LimitExceededException
           5    10      33  Class javax.naming.PartialResultException
           5    10      40  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.NameParser c_getNameParser(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NameParser;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1237
            aload 2 /* cont */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setSuccess:()V
         1: .line 1238
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            areturn
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  name  Ljavax/naming/Name;
            0    2     2  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  public java.lang.String getNameInNamespace();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 1242
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;

  public javax.naming.Name composeName(javax.naming.Name, javax.naming.Name);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/Name;)Ljavax/naming/Name;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.Name prefix
         0: .line 1251
            aload 1 /* name */
            instanceof javax.naming.ldap.LdapName
            ifeq 4
            aload 2 /* prefix */
            instanceof javax.naming.ldap.LdapName
            ifeq 4
         1: .line 1252
            aload 2 /* prefix */
            invokeinterface javax.naming.Name.clone:()Ljava/lang/Object;
            checkcast javax.naming.Name
            astore 3 /* result */
        start local 3 // javax.naming.Name result
         2: .line 1253
            aload 3 /* result */
            aload 1 /* name */
            invokeinterface javax.naming.Name.addAll:(Ljavax/naming/Name;)Ljavax/naming/Name;
            pop
         3: .line 1254
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 3 /* result */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
            areturn
        end local 3 // javax.naming.Name result
         4: .line 1256
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            instanceof javax.naming.CompositeName
            ifne 6
         5: .line 1257
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 1 /* name */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 1 /* name */
         6: .line 1259
      StackMap locals:
      StackMap stack:
            aload 2 /* prefix */
            instanceof javax.naming.CompositeName
            ifne 8
         7: .line 1260
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 2 /* prefix */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 2 /* prefix */
         8: .line 1263
      StackMap locals:
      StackMap stack:
            aload 2 /* prefix */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            isub
            istore 4 /* prefixLast */
        start local 4 // int prefixLast
         9: .line 1265
            aload 1 /* name */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifne 11
            aload 2 /* prefix */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifne 11
        10: .line 1266
            aload 1 /* name */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            aload 2 /* prefix */
            iload 4 /* prefixLast */
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 1267
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name top int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* prefix */
            invokespecial com.sun.jndi.toolkit.ctx.ComponentDirContext.composeName:(Ljavax/naming/Name;Ljavax/naming/Name;)Ljavax/naming/Name;
            areturn
        12: .line 1270
      StackMap locals:
      StackMap stack:
            aload 2 /* prefix */
            invokeinterface javax.naming.Name.clone:()Ljava/lang/Object;
            checkcast javax.naming.Name
            astore 3 /* result */
        start local 3 // javax.naming.Name result
        13: .line 1271
            aload 3 /* result */
            aload 1 /* name */
            invokeinterface javax.naming.Name.addAll:(Ljavax/naming/Name;)Ljavax/naming/Name;
            pop
        14: .line 1273
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
            ifeq 21
        15: .line 1274
            aload 3 /* result */
            iload 4 /* prefixLast */
            iconst_1
            iadd
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
        16: .line 1275
            aload 3 /* result */
            iload 4 /* prefixLast */
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
        17: .line 1274
            invokestatic com.sun.jndi.ldap.LdapCtx.concatNames:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* ldapComp */
        start local 5 // java.lang.String ldapComp
        18: .line 1276
            aload 3 /* result */
            iload 4 /* prefixLast */
            iconst_1
            iadd
            invokeinterface javax.naming.Name.remove:(I)Ljava/lang/Object;
            pop
        19: .line 1277
            aload 3 /* result */
            iload 4 /* prefixLast */
            invokeinterface javax.naming.Name.remove:(I)Ljava/lang/Object;
            pop
        20: .line 1278
            aload 3 /* result */
            iload 4 /* prefixLast */
            aload 5 /* ldapComp */
            invokeinterface javax.naming.Name.add:(ILjava/lang/String;)Ljavax/naming/Name;
            pop
        end local 5 // java.lang.String ldapComp
        21: .line 1280
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name javax.naming.Name int
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 4 // int prefixLast
        end local 3 // javax.naming.Name result
        end local 2 // javax.naming.Name prefix
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   22     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   22     1        name  Ljavax/naming/Name;
            0   22     2      prefix  Ljavax/naming/Name;
            2    4     3      result  Ljavax/naming/Name;
           13   22     3      result  Ljavax/naming/Name;
            9   22     4  prefixLast  I
           18   21     5    ldapComp  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      name    
      prefix  

  private java.lang.String fullyQualifiedName(javax.naming.Name);
    descriptor: (Ljavax/naming/Name;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name rel
         0: .line 1284
            aload 1 /* rel */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 2
         1: .line 1285
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            goto 3
         2: .line 1286
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* rel */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljava/lang/String;)Ljava/lang/String;
         3: .line 1284
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 1 // javax.naming.Name rel
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    4     1   rel  Ljavax/naming/Name;
    MethodParameters:
      Name  Flags
      rel   

  private java.lang.String fullyQualifiedName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String rel
         0: .line 1290
            aload 1 /* rel */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapCtx.concatNames:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String rel
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    1     1   rel  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      rel   

  private static java.lang.String concatNames(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String lesser
        start local 1 // java.lang.String greater
         0: .line 1295
            aload 0 /* lesser */
            ifnull 1
            aload 0 /* lesser */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1296
      StackMap locals:
      StackMap stack:
            aload 1 /* greater */
            areturn
         2: .line 1297
      StackMap locals:
      StackMap stack:
            aload 1 /* greater */
            ifnull 3
            aload 1 /* greater */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 1298
      StackMap locals:
      StackMap stack:
            aload 0 /* lesser */
            areturn
         4: .line 1300
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* lesser */
            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 1 /* greater */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.String greater
        end local 0 // java.lang.String lesser
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0   lesser  Ljava/lang/String;
            0    5     1  greater  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      lesser   
      greater  

  protected javax.naming.directory.Attributes c_getAttributes(javax.naming.Name, java.lang.String[], com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/Attributes;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String[] attrIds
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1310
            aload 3 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1312
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 4 /* cons */
        start local 4 // javax.naming.directory.SearchControls cons
         2: .line 1313
            aload 4 /* cons */
            iconst_0
            invokevirtual javax.naming.directory.SearchControls.setSearchScope:(I)V
         3: .line 1314
            aload 4 /* cons */
            aload 2 /* attrIds */
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         4: .line 1318
            aload 0 /* this */
            aload 1 /* name */
            ldc "(objectClass=*)"
            aload 4 /* cons */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearchOnce:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Z)Lcom/sun/jndi/ldap/LdapResult;
         5: .line 1317
            astore 5 /* answer */
        start local 5 // com.sun.jndi.ldap.LdapResult answer
         6: .line 1319
            aload 0 /* this */
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         7: .line 1321
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 9
         8: .line 1322
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
         9: .line 1325
      StackMap locals: javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            ifnull 10
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            iconst_1
            if_icmpeq 12
        10: .line 1326
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.BasicAttributes
            dup
            iconst_1
            invokespecial javax.naming.directory.BasicAttributes.<init>:(Z)V
        11: areturn
        12: .line 1330
      StackMap locals:
      StackMap stack:
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.sun.jndi.ldap.LdapEntry
            astore 6 /* entry */
        start local 6 // com.sun.jndi.ldap.LdapEntry entry
        13: .line 1332
            aload 6 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.respCtls:Ljava/util/Vector;
            astore 7 /* entryCtls */
        start local 7 // java.util.Vector entryCtls
        14: .line 1333
            aload 7 /* entryCtls */
            ifnull 16
        15: .line 1334
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            aload 7 /* entryCtls */
            invokestatic com.sun.jndi.ldap.LdapCtx.appendVector:(Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
            pop
        16: .line 1338
      StackMap locals: com.sun.jndi.ldap.LdapEntry java.util.Vector
      StackMap stack:
            aload 0 /* this */
            aload 6 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.attributes:Ljavax/naming/directory/Attributes;
            aload 1 /* name */
            invokeinterface javax.naming.Name.clone:()Ljava/lang/Object;
            checkcast javax.naming.Name
            invokevirtual com.sun.jndi.ldap.LdapCtx.setParents:(Ljavax/naming/directory/Attributes;Ljavax/naming/Name;)V
        17: .line 1340
            aload 6 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.attributes:Ljavax/naming/directory/Attributes;
        18: areturn
        end local 7 // java.util.Vector entryCtls
        end local 6 // com.sun.jndi.ldap.LdapEntry entry
        end local 5 // com.sun.jndi.ldap.LdapResult answer
        19: .line 1342
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String[] com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        20: .line 1343
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 22
        21: .line 1344
            aload 3 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        22: .line 1350
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        23: .line 1349
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        24: .line 1355
            aload 6 /* refCtx */
            aload 1 /* name */
            aload 2 /* attrIds */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.getAttributes:(Ljavax/naming/Name;[Ljava/lang/String;)Ljavax/naming/directory/Attributes;
            astore 9
        25: .line 1363
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        26: .line 1355
            aload 9
            areturn
        27: .line 1357
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String[] com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        28: .line 1358
            aload 7 /* re */
            astore 5 /* e */
        29: .line 1363
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        30: .line 1359
            goto 22
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        31: .line 1361
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        32: .line 1363
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        33: .line 1364
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        34: .line 1367
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String[] com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        35: .line 1368
            aload 3 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        end local 4 // javax.naming.directory.SearchControls cons
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // java.lang.String[] attrIds
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   36     0       this  Lcom/sun/jndi/ldap/LdapCtx;
            0   36     1       name  Ljavax/naming/Name;
            0   36     2    attrIds  [Ljava/lang/String;
            0   36     3       cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   36     4       cons  Ljavax/naming/directory/SearchControls;
            6   19     5     answer  Lcom/sun/jndi/ldap/LdapResult;
           13   19     6      entry  Lcom/sun/jndi/ldap/LdapEntry;
           14   19     7  entryCtls  Ljava/util/Vector;
           20   34     5          e  Lcom/sun/jndi/ldap/LdapReferralException;
           24   34     6     refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           28   31     7         re  Lcom/sun/jndi/ldap/LdapReferralException;
           35   36     5          e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           4    11      19  Class com.sun.jndi.ldap.LdapReferralException
          12    18      19  Class com.sun.jndi.ldap.LdapReferralException
          24    25      27  Class com.sun.jndi.ldap.LdapReferralException
          24    25      31  any
          27    29      31  any
           4    11      34  Class javax.naming.NamingException
          12    18      34  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      name     
      attrIds  
      cont     

  protected void c_modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;ILjavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // int mod_op
        start local 3 // javax.naming.directory.Attributes attrs
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1376
            aload 4 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1379
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         2: .line 1381
            aload 3 /* attrs */
            ifnull 3
            aload 3 /* attrs */
            invokeinterface javax.naming.directory.Attributes.size:()I
            ifne 4
         3: .line 1382
      StackMap locals:
      StackMap stack:
            return
         4: .line 1384
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 5 /* newDN */
        start local 5 // java.lang.String newDN
         5: .line 1385
            iload 2 /* mod_op */
            invokestatic com.sun.jndi.ldap.LdapCtx.convertToLdapModCode:(I)I
            istore 6 /* jmod_op */
        start local 6 // int jmod_op
         6: .line 1388
            aload 3 /* attrs */
            invokeinterface javax.naming.directory.Attributes.size:()I
            newarray 10
            astore 7 /* jmods */
        start local 7 // int[] jmods
         7: .line 1389
            aload 3 /* attrs */
            invokeinterface javax.naming.directory.Attributes.size:()I
            anewarray javax.naming.directory.Attribute
            astore 8 /* jattrs */
        start local 8 // javax.naming.directory.Attribute[] jattrs
         8: .line 1391
            aload 3 /* attrs */
            invokeinterface javax.naming.directory.Attributes.getAll:()Ljavax/naming/NamingEnumeration;
            astore 9 /* ae */
        start local 9 // javax.naming.NamingEnumeration ae
         9: .line 1392
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        10: goto 14
        11: .line 1393
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation java.lang.String int int[] javax.naming.directory.Attribute[] javax.naming.NamingEnumeration int
      StackMap stack:
            aload 7 /* jmods */
            iload 10 /* i */
            iload 6 /* jmod_op */
            iastore
        12: .line 1394
            aload 8 /* jattrs */
            iload 10 /* i */
            aload 9 /* ae */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attribute
            aastore
        13: .line 1392
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 10 /* i */
            aload 7 /* jmods */
            arraylength
            if_icmpge 15
            aload 9 /* ae */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 11
        end local 10 // int i
        15: .line 1397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 5 /* newDN */
            aload 7 /* jmods */
            aload 8 /* jattrs */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.modify:(Ljava/lang/String;[I[Ljavax/naming/directory/Attribute;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 10 /* answer */
        start local 10 // com.sun.jndi.ldap.LdapResult answer
        16: .line 1398
            aload 0 /* this */
            aload 10 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        17: .line 1400
            aload 10 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 41
        18: .line 1401
            aload 0 /* this */
            aload 10 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        19: .line 1402
            return
        end local 10 // com.sun.jndi.ldap.LdapResult answer
        end local 9 // javax.naming.NamingEnumeration ae
        end local 8 // javax.naming.directory.Attribute[] jattrs
        end local 7 // int[] jmods
        end local 6 // int jmod_op
        end local 5 // java.lang.String newDN
        20: .line 1405
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        21: .line 1406
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 23
        22: .line 1407
            aload 4 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        23: .line 1413
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        24: .line 1412
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        25: .line 1418
            aload 6 /* refCtx */
            aload 1 /* name */
            iload 2 /* mod_op */
            aload 3 /* attrs */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.modifyAttributes:(Ljavax/naming/Name;ILjavax/naming/directory/Attributes;)V
        26: .line 1427
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        27: .line 1419
            return
        28: .line 1421
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        29: .line 1422
            aload 7 /* re */
            astore 5 /* e */
        30: .line 1427
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        31: .line 1423
            goto 23
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        32: .line 1425
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        33: .line 1427
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        34: .line 1428
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        35: .line 1431
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        36: .line 1432
            new javax.naming.CommunicationException
            dup
            aload 5 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 6 /* e2 */
        start local 6 // javax.naming.NamingException e2
        37: .line 1433
            aload 6 /* e2 */
            aload 5 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        38: .line 1434
            aload 4 /* cont */
            aload 6 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e2
        end local 5 // java.io.IOException e
        39: .line 1436
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        40: .line 1437
            aload 4 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        41: .line 1439
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // javax.naming.directory.Attributes attrs
        end local 2 // int mod_op
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   42     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0   42     1     name  Ljavax/naming/Name;
            0   42     2   mod_op  I
            0   42     3    attrs  Ljavax/naming/directory/Attributes;
            0   42     4     cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            5   20     5    newDN  Ljava/lang/String;
            6   20     6  jmod_op  I
            7   20     7    jmods  [I
            8   20     8   jattrs  [Ljavax/naming/directory/Attribute;
            9   20     9       ae  Ljavax/naming/NamingEnumeration;
           10   15    10        i  I
           16   20    10   answer  Lcom/sun/jndi/ldap/LdapResult;
           21   35     5        e  Lcom/sun/jndi/ldap/LdapReferralException;
           25   35     6   refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           29   32     7       re  Lcom/sun/jndi/ldap/LdapReferralException;
           36   39     5        e  Ljava/io/IOException;
           37   39     6       e2  Ljavax/naming/NamingException;
           40   41     5        e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     3      20  Class com.sun.jndi.ldap.LdapReferralException
           4    19      20  Class com.sun.jndi.ldap.LdapReferralException
          25    26      28  Class com.sun.jndi.ldap.LdapReferralException
          25    26      32  any
          28    30      32  any
           1     3      35  Class java.io.IOException
           4    19      35  Class java.io.IOException
           1     3      39  Class javax.naming.NamingException
           4    19      39  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      name    
      mod_op  
      attrs   
      cont    

  protected void c_modifyAttributes(javax.naming.Name, javax.naming.directory.ModificationItem[], com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;[Ljavax/naming/directory/ModificationItem;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.directory.ModificationItem[] mods
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1444
            aload 3 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1447
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         2: .line 1449
            aload 2 /* mods */
            ifnull 3
            aload 2 /* mods */
            arraylength
            ifne 4
         3: .line 1450
      StackMap locals:
      StackMap stack:
            return
         4: .line 1452
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 4 /* newDN */
        start local 4 // java.lang.String newDN
         5: .line 1455
            aload 2 /* mods */
            arraylength
            newarray 10
            astore 5 /* jmods */
        start local 5 // int[] jmods
         6: .line 1456
            aload 2 /* mods */
            arraylength
            anewarray javax.naming.directory.Attribute
            astore 6 /* jattrs */
        start local 6 // javax.naming.directory.Attribute[] jattrs
         7: .line 1458
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         8: goto 13
         9: .line 1459
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.ModificationItem[] com.sun.jndi.toolkit.ctx.Continuation java.lang.String int[] javax.naming.directory.Attribute[] top int
      StackMap stack:
            aload 2 /* mods */
            iload 8 /* i */
            aaload
            astore 7 /* mod */
        start local 7 // javax.naming.directory.ModificationItem mod
        10: .line 1460
            aload 5 /* jmods */
            iload 8 /* i */
            aload 7 /* mod */
            invokevirtual javax.naming.directory.ModificationItem.getModificationOp:()I
            invokestatic com.sun.jndi.ldap.LdapCtx.convertToLdapModCode:(I)I
            iastore
        11: .line 1461
            aload 6 /* jattrs */
            iload 8 /* i */
            aload 7 /* mod */
            invokevirtual javax.naming.directory.ModificationItem.getAttribute:()Ljavax/naming/directory/Attribute;
            aastore
        12: .line 1458
            iinc 8 /* i */ 1
        end local 7 // javax.naming.directory.ModificationItem mod
      StackMap locals:
      StackMap stack:
        13: iload 8 /* i */
            aload 5 /* jmods */
            arraylength
            if_icmplt 9
        end local 8 // int i
        14: .line 1464
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 4 /* newDN */
            aload 5 /* jmods */
            aload 6 /* jattrs */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.modify:(Ljava/lang/String;[I[Ljavax/naming/directory/Attribute;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 8 /* answer */
        start local 8 // com.sun.jndi.ldap.LdapResult answer
        15: .line 1465
            aload 0 /* this */
            aload 8 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        16: .line 1467
            aload 8 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 40
        17: .line 1468
            aload 0 /* this */
            aload 8 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 8 // com.sun.jndi.ldap.LdapResult answer
        end local 6 // javax.naming.directory.Attribute[] jattrs
        end local 5 // int[] jmods
        end local 4 // java.lang.String newDN
        18: .line 1471
            goto 40
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.ModificationItem[] com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        19: astore 4 /* e */
        start local 4 // com.sun.jndi.ldap.LdapReferralException e
        20: .line 1472
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 22
        21: .line 1473
            aload 3 /* cont */
            aload 4 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        22: .line 1479
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 4 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        23: .line 1478
            astore 5 /* refCtx */
        start local 5 // com.sun.jndi.ldap.LdapReferralContext refCtx
        24: .line 1484
            aload 5 /* refCtx */
            aload 1 /* name */
            aload 2 /* mods */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.modifyAttributes:(Ljavax/naming/Name;[Ljavax/naming/directory/ModificationItem;)V
        25: .line 1493
            aload 5 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        26: .line 1485
            return
        27: .line 1487
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.ModificationItem[] com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 6 /* re */
        start local 6 // com.sun.jndi.ldap.LdapReferralException re
        28: .line 1488
            aload 6 /* re */
            astore 4 /* e */
        29: .line 1493
            aload 5 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        30: .line 1489
            goto 22
        end local 6 // com.sun.jndi.ldap.LdapReferralException re
        31: .line 1491
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        32: .line 1493
            aload 5 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        33: .line 1494
            aload 7
            athrow
        end local 5 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 4 // com.sun.jndi.ldap.LdapReferralException e
        34: .line 1497
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.ModificationItem[] com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        35: .line 1498
            new javax.naming.CommunicationException
            dup
            aload 4 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 5 /* e2 */
        start local 5 // javax.naming.NamingException e2
        36: .line 1499
            aload 5 /* e2 */
            aload 4 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        37: .line 1500
            aload 3 /* cont */
            aload 5 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e2
        end local 4 // java.io.IOException e
        38: .line 1502
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 4 /* e */
        start local 4 // javax.naming.NamingException e
        39: .line 1503
            aload 3 /* cont */
            aload 4 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 4 // javax.naming.NamingException e
        40: .line 1505
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // javax.naming.directory.ModificationItem[] mods
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   41     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   41     1    name  Ljavax/naming/Name;
            0   41     2    mods  [Ljavax/naming/directory/ModificationItem;
            0   41     3    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            5   18     4   newDN  Ljava/lang/String;
            6   18     5   jmods  [I
            7   18     6  jattrs  [Ljavax/naming/directory/Attribute;
           10   13     7     mod  Ljavax/naming/directory/ModificationItem;
            8   14     8       i  I
           15   18     8  answer  Lcom/sun/jndi/ldap/LdapResult;
           20   34     4       e  Lcom/sun/jndi/ldap/LdapReferralException;
           24   34     5  refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           28   31     6      re  Lcom/sun/jndi/ldap/LdapReferralException;
           35   38     4       e  Ljava/io/IOException;
           36   38     5      e2  Ljavax/naming/NamingException;
           39   40     4       e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     3      19  Class com.sun.jndi.ldap.LdapReferralException
           4    18      19  Class com.sun.jndi.ldap.LdapReferralException
          24    25      27  Class com.sun.jndi.ldap.LdapReferralException
          24    25      31  any
          27    29      31  any
           1     3      34  Class java.io.IOException
           4    18      34  Class java.io.IOException
           1     3      38  Class javax.naming.NamingException
           4    18      38  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      mods  
      cont  

  private static int convertToLdapModCode(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int mod_op
         0: .line 1508
            iload 0 /* mod_op */
            tableswitch { // 1 - 3
                    1: 1
                    2: 2
                    3: 3
              default: 4
          }
         1: .line 1510
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 1513
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
         3: .line 1516
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 1519
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid modification code"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // int mod_op
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  mod_op  I
    MethodParameters:
        Name  Flags
      mod_op  

  protected javax.naming.directory.DirContext c_getSchema(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1527
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1529
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.getSchemaTree:(Ljavax/naming/Name;)Ljavax/naming/directory/DirContext;
         2: areturn
         3: .line 1531
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 3 /* e */
        start local 3 // javax.naming.NamingException e
         4: .line 1532
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 3 // javax.naming.NamingException e
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  name  Ljavax/naming/Name;
            0    5     2  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            4    5     3     e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     2       3  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.directory.DirContext c_getSchemaClassDefinition(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1539
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1543
            aload 0 /* this */
            aload 1 /* name */
         2: .line 1544
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "objectclass"
            aastore
            aload 2 /* cont */
         3: .line 1543
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_getAttributes:(Ljavax/naming/Name;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/Attributes;
         4: .line 1544
            ldc "objectclass"
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
         5: .line 1543
            astore 3 /* objectClassAttr */
        start local 3 // javax.naming.directory.Attribute objectClassAttr
         6: .line 1545
            aload 3 /* objectClassAttr */
            ifnull 7
            aload 3 /* objectClassAttr */
            invokeinterface javax.naming.directory.Attribute.size:()I
            ifne 9
         7: .line 1546
      StackMap locals: javax.naming.directory.Attribute
      StackMap stack:
            getstatic com.sun.jndi.ldap.LdapCtx.EMPTY_SCHEMA:Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
         8: areturn
         9: .line 1550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_getSchema:(Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
        10: .line 1551
            ldc "ClassDefinition"
        11: .line 1550
            invokeinterface javax.naming.directory.DirContext.lookup:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.naming.Context
            astore 4 /* ocSchema */
        start local 4 // javax.naming.Context ocSchema
        12: .line 1555
            new com.sun.jndi.toolkit.dir.HierMemDirCtx
            dup
            invokespecial com.sun.jndi.toolkit.dir.HierMemDirCtx.<init>:()V
            astore 5 /* objectClassCtx */
        start local 5 // com.sun.jndi.toolkit.dir.HierMemDirCtx objectClassCtx
        13: .line 1558
            aload 3 /* objectClassAttr */
            invokeinterface javax.naming.directory.Attribute.getAll:()Ljavax/naming/NamingEnumeration;
            astore 8 /* objectClasses */
        start local 8 // java.util.Enumeration objectClasses
        14: .line 1559
            goto 18
        15: .line 1560
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attribute javax.naming.Context com.sun.jndi.toolkit.dir.HierMemDirCtx top top java.util.Enumeration
      StackMap stack:
            aload 8 /* objectClasses */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* objectClassName */
        start local 7 // java.lang.String objectClassName
        16: .line 1562
            aload 4 /* ocSchema */
            aload 7 /* objectClassName */
            invokeinterface javax.naming.Context.lookup:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.naming.directory.DirContext
            astore 6 /* objectClassDef */
        start local 6 // javax.naming.directory.DirContext objectClassDef
        17: .line 1563
            aload 5 /* objectClassCtx */
            aload 7 /* objectClassName */
            aload 6 /* objectClassDef */
            invokevirtual com.sun.jndi.toolkit.dir.HierMemDirCtx.bind:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 7 // java.lang.String objectClassName
        end local 6 // javax.naming.directory.DirContext objectClassDef
        18: .line 1559
      StackMap locals:
      StackMap stack:
            aload 8 /* objectClasses */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 15
        end local 8 // java.util.Enumeration objectClasses
        19: .line 1567
            aload 5 /* objectClassCtx */
        20: .line 1568
            new javax.naming.directory.SchemaViolationException
            dup
            ldc "Cannot update schema object"
            invokespecial javax.naming.directory.SchemaViolationException.<init>:(Ljava/lang/String;)V
        21: .line 1567
            invokevirtual com.sun.jndi.toolkit.dir.HierMemDirCtx.setReadOnly:(Ljavax/naming/NamingException;)V
        22: .line 1569
            aload 5 /* objectClassCtx */
        23: areturn
        end local 5 // com.sun.jndi.toolkit.dir.HierMemDirCtx objectClassCtx
        end local 4 // javax.naming.Context ocSchema
        end local 3 // javax.naming.directory.Attribute objectClassAttr
        24: .line 1571
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: javax.naming.NamingException
            astore 3 /* e */
        start local 3 // javax.naming.NamingException e
        25: .line 1572
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 3 // javax.naming.NamingException e
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   26     0             this  Lcom/sun/jndi/ldap/LdapCtx;
            0   26     1             name  Ljavax/naming/Name;
            0   26     2             cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            6   24     3  objectClassAttr  Ljavax/naming/directory/Attribute;
           12   24     4         ocSchema  Ljavax/naming/Context;
           13   24     5   objectClassCtx  Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
           17   18     6   objectClassDef  Ljavax/naming/directory/DirContext;
           16   18     7  objectClassName  Ljava/lang/String;
           14   19     8    objectClasses  Ljava/util/Enumeration;
           25   26     3                e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     8      24  Class javax.naming.NamingException
           9    23      24  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  private javax.naming.directory.DirContext getSchemaTree(javax.naming.Name);
    descriptor: (Ljavax/naming/Name;)Ljavax/naming/directory/DirContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
         0: .line 1582
            aload 0 /* this */
            aload 1 /* name */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.getSchemaEntry:(Ljavax/naming/Name;Z)Ljava/lang/String;
            astore 2 /* subschemasubentry */
        start local 2 // java.lang.String subschemasubentry
         1: .line 1584
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
            aload 2 /* subschemasubentry */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.naming.directory.DirContext
            astore 3 /* schemaTree */
        start local 3 // javax.naming.directory.DirContext schemaTree
         2: .line 1586
            aload 3 /* schemaTree */
            ifnonnull 5
         3: .line 1588
            aload 0 /* this */
            aload 2 /* subschemasubentry */
            invokevirtual com.sun.jndi.ldap.LdapCtx.buildSchemaTree:(Ljava/lang/String;)Ljavax/naming/directory/DirContext;
            astore 3 /* schemaTree */
         4: .line 1589
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
            aload 2 /* subschemasubentry */
            aload 3 /* schemaTree */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 1592
      StackMap locals: java.lang.String javax.naming.directory.DirContext
      StackMap stack:
            aload 3 /* schemaTree */
            areturn
        end local 3 // javax.naming.directory.DirContext schemaTree
        end local 2 // java.lang.String subschemasubentry
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/sun/jndi/ldap/LdapCtx;
            0    6     1               name  Ljavax/naming/Name;
            1    6     2  subschemasubentry  Ljava/lang/String;
            2    6     3         schemaTree  Ljavax/naming/directory/DirContext;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  

  private javax.naming.directory.DirContext buildSchemaTree(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/naming/directory/DirContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=7, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String subschemasubentry
         0: .line 1607
            new javax.naming.directory.SearchControls
            dup
            iconst_0
         1: .line 1608
            lconst_0
            iconst_0
         2: .line 1609
            getstatic com.sun.jndi.ldap.LdapCtx.SCHEMA_ATTRIBUTES:[Ljava/lang/String;
         3: .line 1610
            iconst_1
         4: .line 1611
            iconst_0
         5: .line 1606
            invokespecial javax.naming.directory.SearchControls.<init>:(IJI[Ljava/lang/String;ZZ)V
            astore 2 /* constraints */
        start local 2 // javax.naming.directory.SearchControls constraints
         6: .line 1613
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 1 /* subschemasubentry */
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 3 /* sse */
        start local 3 // javax.naming.Name sse
         7: .line 1615
            aload 0 /* this */
            aload 3 /* sse */
            ldc "(objectClass=subschema)"
            aload 2 /* constraints */
         8: .line 1616
            iconst_0
            iconst_1
            new com.sun.jndi.toolkit.ctx.Continuation
            dup
            invokespecial com.sun.jndi.toolkit.ctx.Continuation.<init>:()V
         9: .line 1615
            invokevirtual com.sun.jndi.ldap.LdapCtx.searchAux:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
        10: .line 1614
            astore 4 /* results */
        start local 4 // javax.naming.NamingEnumeration results
        11: .line 1618
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 15
        12: .line 1619
            new javax.naming.OperationNotSupportedException
            dup
        13: .line 1620
            new java.lang.StringBuilder
            dup
            ldc "Cannot get read subschemasubentry: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* subschemasubentry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 1619
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1622
      StackMap locals: javax.naming.directory.SearchControls javax.naming.Name javax.naming.NamingEnumeration
      StackMap stack:
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.SearchResult
            astore 5 /* result */
        start local 5 // javax.naming.directory.SearchResult result
        16: .line 1623
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.close:()V
        17: .line 1625
            aload 5 /* result */
            invokevirtual javax.naming.directory.SearchResult.getObject:()Ljava/lang/Object;
            astore 6 /* obj */
        start local 6 // java.lang.Object obj
        18: .line 1626
            aload 6 /* obj */
            instanceof com.sun.jndi.ldap.LdapCtx
            ifne 22
        19: .line 1627
            new javax.naming.NamingException
            dup
        20: .line 1628
            new java.lang.StringBuilder
            dup
            ldc "Cannot get schema object as DirContext: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* subschemasubentry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 1627
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 1631
      StackMap locals: javax.naming.directory.SearchResult java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 1 /* subschemasubentry */
        23: .line 1632
            aload 6 /* obj */
            checkcast com.sun.jndi.ldap.LdapCtx
        24: .line 1633
            aload 5 /* result */
            invokevirtual javax.naming.directory.SearchResult.getAttributes:()Ljavax/naming/directory/Attributes;
        25: .line 1634
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        26: .line 1631
            invokestatic com.sun.jndi.ldap.LdapSchemaCtx.createSchemaTree:(Ljava/util/Hashtable;Ljava/lang/String;Lcom/sun/jndi/ldap/LdapCtx;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/DirContext;
            areturn
        end local 6 // java.lang.Object obj
        end local 5 // javax.naming.directory.SearchResult result
        end local 4 // javax.naming.NamingEnumeration results
        end local 3 // javax.naming.Name sse
        end local 2 // javax.naming.directory.SearchControls constraints
        end local 1 // java.lang.String subschemasubentry
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lcom/sun/jndi/ldap/LdapCtx;
            0   27     1  subschemasubentry  Ljava/lang/String;
            6   27     2        constraints  Ljavax/naming/directory/SearchControls;
            7   27     3                sse  Ljavax/naming/Name;
           11   27     4            results  Ljavax/naming/NamingEnumeration;
           16   27     5             result  Ljavax/naming/directory/SearchResult;
           18   27     6                obj  Ljava/lang/Object;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
                   Name  Flags
      subschemasubentry  

  private java.lang.String getSchemaEntry(javax.naming.Name, boolean);
    descriptor: (Ljavax/naming/Name;Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=7, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // boolean relative
         0: .line 1661
            new javax.naming.directory.SearchControls
            dup
            iconst_0
         1: .line 1662
            lconst_0
            iconst_0
         2: .line 1663
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "subschemasubentry"
            aastore
         3: .line 1664
            iconst_0
         4: .line 1665
            iconst_0
         5: .line 1661
            invokespecial javax.naming.directory.SearchControls.<init>:(IJI[Ljava/lang/String;ZZ)V
            astore 3 /* constraints */
        start local 3 // javax.naming.directory.SearchControls constraints
         6: .line 1669
            aload 0 /* this */
            aload 1 /* name */
            ldc "objectclass=*"
            aload 3 /* constraints */
            iload 2 /* relative */
         7: .line 1670
            iconst_1
            new com.sun.jndi.toolkit.ctx.Continuation
            dup
            invokespecial com.sun.jndi.toolkit.ctx.Continuation.<init>:()V
         8: .line 1669
            invokevirtual com.sun.jndi.ldap.LdapCtx.searchAux:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            astore 4 /* results */
        start local 4 // javax.naming.NamingEnumeration results
         9: .line 1672
            goto 16
        end local 4 // javax.naming.NamingEnumeration results
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.SearchControls
      StackMap stack: javax.naming.NamingException
        10: astore 5 /* ne */
        start local 5 // javax.naming.NamingException ne
        11: .line 1673
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifne 15
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 15
            aload 1 /* name */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 15
        12: .line 1676
            new javax.naming.OperationNotSupportedException
            dup
        13: .line 1677
            ldc "Cannot get schema information from server"
        14: .line 1676
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1679
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.SearchControls top javax.naming.NamingException
      StackMap stack:
            aload 5 /* ne */
            athrow
        end local 5 // javax.naming.NamingException ne
        start local 4 // javax.naming.NamingEnumeration results
        16: .line 1683
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.SearchControls javax.naming.NamingEnumeration
      StackMap stack:
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.hasMoreElements:()Z
            ifne 20
        17: .line 1684
            new javax.naming.ConfigurationException
            dup
        18: .line 1685
            new java.lang.StringBuilder
            dup
            ldc "Requesting schema of nonexistent entry: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 1684
            invokespecial javax.naming.ConfigurationException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 1688
      StackMap locals:
      StackMap stack:
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.SearchResult
            astore 5 /* result */
        start local 5 // javax.naming.directory.SearchResult result
        21: .line 1689
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.close:()V
        22: .line 1692
            aload 5 /* result */
            invokevirtual javax.naming.directory.SearchResult.getAttributes:()Ljavax/naming/directory/Attributes;
            ldc "subschemasubentry"
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
        23: .line 1691
            astore 6 /* schemaEntryAttr */
        start local 6 // javax.naming.directory.Attribute schemaEntryAttr
        24: .line 1695
            aload 6 /* schemaEntryAttr */
            ifnull 25
            aload 6 /* schemaEntryAttr */
            invokeinterface javax.naming.directory.Attribute.size:()I
            ifge 30
        25: .line 1696
      StackMap locals: javax.naming.directory.SearchResult javax.naming.directory.Attribute
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 29
            aload 1 /* name */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 29
        26: .line 1699
            new javax.naming.OperationNotSupportedException
            dup
        27: .line 1700
            ldc "Cannot read subschemasubentry of root DSE"
        28: .line 1699
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 1702
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.getSchemaEntry:(Ljavax/naming/Name;Z)Ljava/lang/String;
            areturn
        30: .line 1706
      StackMap locals:
      StackMap stack:
            aload 6 /* schemaEntryAttr */
            invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 6 // javax.naming.directory.Attribute schemaEntryAttr
        end local 5 // javax.naming.directory.SearchResult result
        end local 4 // javax.naming.NamingEnumeration results
        end local 3 // javax.naming.directory.SearchControls constraints
        end local 2 // boolean relative
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   31     0             this  Lcom/sun/jndi/ldap/LdapCtx;
            0   31     1             name  Ljavax/naming/Name;
            0   31     2         relative  Z
            6   31     3      constraints  Ljavax/naming/directory/SearchControls;
            9   10     4          results  Ljavax/naming/NamingEnumeration;
           16   31     4          results  Ljavax/naming/NamingEnumeration;
           11   16     5               ne  Ljavax/naming/NamingException;
           21   31     5           result  Ljavax/naming/directory/SearchResult;
           24   31     6  schemaEntryAttr  Ljavax/naming/directory/Attribute;
      Exception table:
        from    to  target  type
           6     9      10  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      name      
      relative  

  void setParents(javax.naming.directory.Attributes, javax.naming.Name);
    descriptor: (Ljavax/naming/directory/Attributes;Ljavax/naming/Name;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.directory.Attributes attrs
        start local 2 // javax.naming.Name name
         0: .line 1713
            aload 1 /* attrs */
            invokeinterface javax.naming.directory.Attributes.getAll:()Ljavax/naming/NamingEnumeration;
            astore 3 /* ae */
        start local 3 // javax.naming.NamingEnumeration ae
         1: .line 1714
            goto 3
         2: .line 1715
      StackMap locals: javax.naming.NamingEnumeration
      StackMap stack:
            aload 3 /* ae */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast com.sun.jndi.ldap.LdapAttribute
            aload 0 /* this */
            aload 2 /* name */
            invokevirtual com.sun.jndi.ldap.LdapAttribute.setParent:(Ljavax/naming/directory/DirContext;Ljavax/naming/Name;)V
         3: .line 1714
      StackMap locals:
      StackMap stack:
            aload 3 /* ae */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 2
         4: .line 1717
            return
        end local 3 // javax.naming.NamingEnumeration ae
        end local 2 // javax.naming.Name name
        end local 1 // javax.naming.directory.Attributes attrs
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  attrs  Ljavax/naming/directory/Attributes;
            0    5     2   name  Ljavax/naming/Name;
            1    5     3     ae  Ljavax/naming/NamingEnumeration;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      attrs  
      name   

  java.lang.String getURL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 1724
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
            ifnonnull 4
         1: .line 1725
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.port_number:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
         2: .line 1726
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
         3: .line 1725
            invokestatic com.sun.jndi.ldap.LdapURL.toUrlString:(Ljava/lang/String;ILjava/lang/String;Z)Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
         4: .line 1729
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/jndi/ldap/LdapCtx;

  protected javax.naming.NamingEnumeration c_search(javax.naming.Name, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.directory.Attributes matchingAttributes
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1737
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* matchingAttributes */
            aconst_null
            aload 3 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_search:(Ljavax/naming/Name;Ljavax/naming/directory/Attributes;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            areturn
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // javax.naming.directory.Attributes matchingAttributes
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lcom/sun/jndi/ldap/LdapCtx;
            0    1     1                name  Ljavax/naming/Name;
            0    1     2  matchingAttributes  Ljavax/naming/directory/Attributes;
            0    1     3                cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
                    Name  Flags
      name                
      matchingAttributes  
      cont                

  protected javax.naming.NamingEnumeration c_search(javax.naming.Name, javax.naming.directory.Attributes, java.lang.String[], com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/directory/Attributes;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.directory.Attributes matchingAttributes
        start local 3 // java.lang.String[] attributesToReturn
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1745
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 5 /* cons */
        start local 5 // javax.naming.directory.SearchControls cons
         1: .line 1746
            aload 5 /* cons */
            aload 3 /* attributesToReturn */
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         2: .line 1749
            aload 2 /* matchingAttributes */
            invokestatic com.sun.jndi.toolkit.dir.SearchFilter.format:(Ljavax/naming/directory/Attributes;)Ljava/lang/String;
            astore 6 /* filter */
        start local 6 // java.lang.String filter
         3: .line 1750
            goto 7
        end local 6 // java.lang.String filter
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes java.lang.String[] com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls
      StackMap stack: javax.naming.NamingException
         4: astore 7 /* e */
        start local 7 // javax.naming.NamingException e
         5: .line 1751
            aload 4 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         6: .line 1752
            aload 4 /* cont */
            aload 7 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 7 // javax.naming.NamingException e
        start local 6 // java.lang.String filter
         7: .line 1754
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 6 /* filter */
            aload 5 /* cons */
            aload 4 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_search:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            areturn
        end local 6 // java.lang.String filter
        end local 5 // javax.naming.directory.SearchControls cons
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // java.lang.String[] attributesToReturn
        end local 2 // javax.naming.directory.Attributes matchingAttributes
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0                this  Lcom/sun/jndi/ldap/LdapCtx;
            0    8     1                name  Ljavax/naming/Name;
            0    8     2  matchingAttributes  Ljavax/naming/directory/Attributes;
            0    8     3  attributesToReturn  [Ljava/lang/String;
            0    8     4                cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1    8     5                cons  Ljavax/naming/directory/SearchControls;
            3    4     6              filter  Ljava/lang/String;
            7    8     6              filter  Ljava/lang/String;
            5    7     7                   e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2     3       4  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
                    Name  Flags
      name                
      matchingAttributes  
      attributesToReturn  
      cont                

  protected javax.naming.NamingEnumeration c_search(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls cons
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1762
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneSearchControls:(Ljavax/naming/directory/SearchControls;)Ljavax/naming/directory/SearchControls;
            iconst_1
            iconst_1
         1: .line 1763
            aload 4 /* cont */
         2: .line 1762
            invokevirtual com.sun.jndi.ldap.LdapCtx.searchAux:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            areturn
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1    name  Ljavax/naming/Name;
            0    3     2  filter  Ljava/lang/String;
            0    3     3    cons  Ljavax/naming/directory/SearchControls;
            0    3     4    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      name    
      filter  
      cons    
      cont    

  protected javax.naming.NamingEnumeration c_search(javax.naming.Name, java.lang.String, java.lang.Object[], javax.naming.directory.SearchControls, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;[Ljava/lang/Object;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filterExpr
        start local 3 // java.lang.Object[] filterArgs
        start local 4 // javax.naming.directory.SearchControls cons
        start local 5 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1774
            aload 2 /* filterExpr */
            aload 3 /* filterArgs */
            invokestatic com.sun.jndi.toolkit.dir.SearchFilter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 6 /* strfilter */
        start local 6 // java.lang.String strfilter
         1: .line 1775
            goto 5
        end local 6 // java.lang.String strfilter
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         2: astore 7 /* e */
        start local 7 // javax.naming.NamingException e
         3: .line 1776
            aload 5 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         4: .line 1777
            aload 5 /* cont */
            aload 7 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 7 // javax.naming.NamingException e
        start local 6 // java.lang.String strfilter
         5: .line 1779
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 6 /* strfilter */
            aload 4 /* cons */
            aload 5 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_search:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            areturn
        end local 6 // java.lang.String strfilter
        end local 5 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 4 // javax.naming.directory.SearchControls cons
        end local 3 // java.lang.Object[] filterArgs
        end local 2 // java.lang.String filterExpr
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    6     1        name  Ljavax/naming/Name;
            0    6     2  filterExpr  Ljava/lang/String;
            0    6     3  filterArgs  [Ljava/lang/Object;
            0    6     4        cons  Ljavax/naming/directory/SearchControls;
            0    6     5        cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1    2     6   strfilter  Ljava/lang/String;
            5    6     6   strfilter  Ljava/lang/String;
            3    5     7           e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           0     1       2  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
            Name  Flags
      name        
      filterExpr  
      filterArgs  
      cons        
      cont        

  javax.naming.NamingEnumeration searchAux(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, boolean, boolean, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0000) 
    Code:
      stack=7, locals=16, args_size=7
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls cons
        start local 4 // boolean relative
        start local 5 // boolean waitForReply
        start local 6 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1789
            aconst_null
            astore 7 /* answer */
        start local 7 // com.sun.jndi.ldap.LdapResult answer
         1: .line 1790
            iconst_2
            anewarray java.lang.String
            astore 8 /* tokens */
        start local 8 // java.lang.String[] tokens
         2: .line 1793
            aload 3 /* cons */
            ifnonnull 4
         3: .line 1794
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 3 /* cons */
         4: .line 1796
      StackMap locals: com.sun.jndi.ldap.LdapResult java.lang.String[]
      StackMap stack:
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningAttributes:()[Ljava/lang/String;
            astore 9 /* reqAttrs */
        start local 9 // java.lang.String[] reqAttrs
         5: .line 1800
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningObjFlag:()Z
            ifeq 25
         6: .line 1801
            aload 9 /* reqAttrs */
            ifnull 25
         7: .line 1804
            iconst_0
            istore 10 /* hasWildcard */
        start local 10 // boolean hasWildcard
         8: .line 1805
            aload 9 /* reqAttrs */
            arraylength
            iconst_1
            isub
            istore 11 /* i */
        start local 11 // int i
         9: goto 14
        10: .line 1806
      StackMap locals: java.lang.String[] int int
      StackMap stack:
            aload 9 /* reqAttrs */
            iload 11 /* i */
            aaload
            ldc "*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 1807
            iconst_1
            istore 10 /* hasWildcard */
        12: .line 1808
            goto 15
        13: .line 1805
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ -1
      StackMap locals:
      StackMap stack:
        14: iload 11 /* i */
            ifge 10
        end local 11 // int i
        15: .line 1811
      StackMap locals:
      StackMap stack:
            iload 10 /* hasWildcard */
            ifne 25
        16: .line 1813
            aload 9 /* reqAttrs */
            arraylength
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            arraylength
            iadd
            anewarray java.lang.String
        17: .line 1812
            astore 11 /* totalAttrs */
        start local 11 // java.lang.String[] totalAttrs
        18: .line 1814
            aload 9 /* reqAttrs */
            iconst_0
            aload 11 /* totalAttrs */
            iconst_0
        19: .line 1815
            aload 9 /* reqAttrs */
            arraylength
        20: .line 1814
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        21: .line 1816
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_0
            aload 11 /* totalAttrs */
        22: .line 1817
            aload 9 /* reqAttrs */
            arraylength
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            arraylength
        23: .line 1816
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        24: .line 1819
            aload 3 /* cons */
            aload 11 /* totalAttrs */
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
        end local 11 // java.lang.String[] totalAttrs
        end local 10 // boolean hasWildcard
        25: .line 1825
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapCtx$SearchArgs
            dup
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            aload 9 /* reqAttrs */
            invokespecial com.sun.jndi.ldap.LdapCtx$SearchArgs.<init>:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;[Ljava/lang/String;)V
        26: .line 1824
            astore 10 /* args */
        start local 10 // com.sun.jndi.ldap.LdapCtx$SearchArgs args
        27: .line 1827
            aload 6 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
        28: .line 1830
            aload 2 /* filter */
            aload 3 /* cons */
            aload 8 /* tokens */
            invokestatic com.sun.jndi.ldap.LdapCtx.searchToCompare:(Ljava/lang/String;Ljavax/naming/directory/SearchControls;[Ljava/lang/String;)Z
            ifeq 33
        29: .line 1832
            aload 0 /* this */
            aload 1 /* name */
            aload 8 /* tokens */
            iconst_0
            aaload
            aload 8 /* tokens */
            iconst_1
            aaload
            invokevirtual com.sun.jndi.ldap.LdapCtx.compare:(Ljavax/naming/Name;Ljava/lang/String;Ljava/lang/String;)Lcom/sun/jndi/ldap/LdapResult;
            astore 7 /* answer */
        30: .line 1833
            aload 7 /* answer */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            invokevirtual com.sun.jndi.ldap.LdapResult.compareToSearchResult:(Ljava/lang/String;)Z
            ifne 35
        31: .line 1834
            aload 0 /* this */
            aload 7 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        32: .line 1836
            goto 35
        33: .line 1837
      StackMap locals: com.sun.jndi.ldap.LdapCtx$SearchArgs
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            iload 4 /* relative */
            iload 5 /* waitForReply */
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearch:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
            astore 7 /* answer */
        34: .line 1839
            aload 0 /* this */
            aload 7 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        35: .line 1841
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapSearchEnumeration
            dup
            aload 0 /* this */
            aload 7 /* answer */
        36: .line 1842
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            aload 10 /* args */
            aload 6 /* cont */
        37: .line 1841
            invokespecial com.sun.jndi.ldap.LdapSearchEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljava/lang/String;Lcom/sun/jndi/ldap/LdapCtx$SearchArgs;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        38: areturn
        39: .line 1844
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 11 /* e */
        start local 11 // com.sun.jndi.ldap.LdapReferralException e
        40: .line 1845
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 42
        41: .line 1846
            aload 6 /* cont */
            aload 11 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        42: .line 1852
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 11 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        43: .line 1851
            astore 12 /* refCtx */
        start local 12 // com.sun.jndi.ldap.LdapReferralContext refCtx
        44: .line 1857
            aload 12 /* refCtx */
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.search:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;)Ljavax/naming/NamingEnumeration;
            astore 15
        45: .line 1865
            aload 12 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        46: .line 1857
            aload 15
            areturn
        47: .line 1859
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapResult java.lang.String[] java.lang.String[] com.sun.jndi.ldap.LdapCtx$SearchArgs com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 13 /* re */
        start local 13 // com.sun.jndi.ldap.LdapReferralException re
        48: .line 1860
            aload 13 /* re */
            astore 11 /* e */
        49: .line 1865
            aload 12 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        50: .line 1861
            goto 42
        end local 13 // com.sun.jndi.ldap.LdapReferralException re
        51: .line 1863
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14
        52: .line 1865
            aload 12 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        53: .line 1866
            aload 14
            athrow
        end local 12 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 11 // com.sun.jndi.ldap.LdapReferralException e
        54: .line 1869
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapResult java.lang.String[] java.lang.String[] com.sun.jndi.ldap.LdapCtx$SearchArgs
      StackMap stack: javax.naming.LimitExceededException
            astore 11 /* e */
        start local 11 // javax.naming.LimitExceededException e
        55: .line 1871
            new com.sun.jndi.ldap.LdapSearchEnumeration
            dup
            aload 0 /* this */
            aload 7 /* answer */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
        56: .line 1872
            aload 10 /* args */
            aload 6 /* cont */
        57: .line 1871
            invokespecial com.sun.jndi.ldap.LdapSearchEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljava/lang/String;Lcom/sun/jndi/ldap/LdapCtx$SearchArgs;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        58: .line 1870
            astore 12 /* res */
        start local 12 // com.sun.jndi.ldap.LdapSearchEnumeration res
        59: .line 1873
            aload 12 /* res */
            aload 11 /* e */
            invokevirtual com.sun.jndi.ldap.LdapSearchEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        60: .line 1874
            aload 12 /* res */
            areturn
        end local 12 // com.sun.jndi.ldap.LdapSearchEnumeration res
        end local 11 // javax.naming.LimitExceededException e
        61: .line 1876
      StackMap locals:
      StackMap stack: javax.naming.PartialResultException
            astore 11 /* e */
        start local 11 // javax.naming.PartialResultException e
        62: .line 1878
            new com.sun.jndi.ldap.LdapSearchEnumeration
            dup
            aload 0 /* this */
            aload 7 /* answer */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
        63: .line 1879
            aload 10 /* args */
            aload 6 /* cont */
        64: .line 1878
            invokespecial com.sun.jndi.ldap.LdapSearchEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljava/lang/String;Lcom/sun/jndi/ldap/LdapCtx$SearchArgs;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        65: .line 1877
            astore 12 /* res */
        start local 12 // com.sun.jndi.ldap.LdapSearchEnumeration res
        66: .line 1881
            aload 12 /* res */
            aload 11 /* e */
            invokevirtual com.sun.jndi.ldap.LdapSearchEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        67: .line 1882
            aload 12 /* res */
            areturn
        end local 12 // com.sun.jndi.ldap.LdapSearchEnumeration res
        end local 11 // javax.naming.PartialResultException e
        68: .line 1884
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 11 /* e */
        start local 11 // java.io.IOException e
        69: .line 1885
            new javax.naming.CommunicationException
            dup
            aload 11 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 12 /* e2 */
        start local 12 // javax.naming.NamingException e2
        70: .line 1886
            aload 12 /* e2 */
            aload 11 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        71: .line 1887
            aload 6 /* cont */
            aload 12 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 12 // javax.naming.NamingException e2
        end local 11 // java.io.IOException e
        72: .line 1889
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 11 /* e */
        start local 11 // javax.naming.NamingException e
        73: .line 1890
            aload 6 /* cont */
            aload 11 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 11 // javax.naming.NamingException e
        end local 10 // com.sun.jndi.ldap.LdapCtx$SearchArgs args
        end local 9 // java.lang.String[] reqAttrs
        end local 8 // java.lang.String[] tokens
        end local 7 // com.sun.jndi.ldap.LdapResult answer
        end local 6 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 5 // boolean waitForReply
        end local 4 // boolean relative
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   74     0          this  Lcom/sun/jndi/ldap/LdapCtx;
            0   74     1          name  Ljavax/naming/Name;
            0   74     2        filter  Ljava/lang/String;
            0   74     3          cons  Ljavax/naming/directory/SearchControls;
            0   74     4      relative  Z
            0   74     5  waitForReply  Z
            0   74     6          cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1   74     7        answer  Lcom/sun/jndi/ldap/LdapResult;
            2   74     8        tokens  [Ljava/lang/String;
            5   74     9      reqAttrs  [Ljava/lang/String;
            8   25    10   hasWildcard  Z
            9   15    11             i  I
           18   25    11    totalAttrs  [Ljava/lang/String;
           27   74    10          args  Lcom/sun/jndi/ldap/LdapCtx$SearchArgs;
           40   54    11             e  Lcom/sun/jndi/ldap/LdapReferralException;
           44   54    12        refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           48   51    13            re  Lcom/sun/jndi/ldap/LdapReferralException;
           55   61    11             e  Ljavax/naming/LimitExceededException;
           59   61    12           res  Lcom/sun/jndi/ldap/LdapSearchEnumeration;
           62   68    11             e  Ljavax/naming/PartialResultException;
           66   68    12           res  Lcom/sun/jndi/ldap/LdapSearchEnumeration;
           69   72    11             e  Ljava/io/IOException;
           70   72    12            e2  Ljavax/naming/NamingException;
           73   74    11             e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
          28    38      39  Class com.sun.jndi.ldap.LdapReferralException
          44    45      47  Class com.sun.jndi.ldap.LdapReferralException
          44    45      51  any
          47    49      51  any
          28    38      54  Class javax.naming.LimitExceededException
          28    38      61  Class javax.naming.PartialResultException
          28    38      68  Class java.io.IOException
          28    38      72  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
              Name  Flags
      name          
      filter        
      cons          
      relative      
      waitForReply  
      cont          

  com.sun.jndi.ldap.LdapResult getSearchReply(com.sun.jndi.ldap.LdapClient, com.sun.jndi.ldap.LdapResult);
    descriptor: (Lcom/sun/jndi/ldap/LdapClient;Lcom/sun/jndi/ldap/LdapResult;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapClient eClnt
        start local 2 // com.sun.jndi.ldap.LdapResult res
         0: .line 1903
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 1 /* eClnt */
            if_acmpeq 4
         1: .line 1904
            new javax.naming.CommunicationException
            dup
         2: .line 1905
            ldc "Context's connection changed; unable to continue enumeration"
         3: .line 1904
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1909
      StackMap locals:
      StackMap stack:
            aload 1 /* eClnt */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.batchSize:I
            aload 2 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
            invokevirtual com.sun.jndi.ldap.LdapClient.getSearchReply:(ILcom/sun/jndi/ldap/LdapResult;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
         5: areturn
         6: .line 1910
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
         7: .line 1911
            new javax.naming.CommunicationException
            dup
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 4 /* e2 */
        start local 4 // javax.naming.NamingException e2
         8: .line 1912
            aload 4 /* e2 */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
         9: .line 1913
            aload 4 /* e2 */
            athrow
        end local 4 // javax.naming.NamingException e2
        end local 3 // java.io.IOException e
        end local 2 // com.sun.jndi.ldap.LdapResult res
        end local 1 // com.sun.jndi.ldap.LdapClient eClnt
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0   10     1  eClnt  Lcom/sun/jndi/ldap/LdapClient;
            0   10     2    res  Lcom/sun/jndi/ldap/LdapResult;
            7   10     3      e  Ljava/io/IOException;
            8   10     4     e2  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      eClnt  
      res    

  private com.sun.jndi.ldap.LdapResult doSearchOnce(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, boolean);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Z)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls cons
        start local 4 // boolean relative
         0: .line 1921
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.batchSize:I
            istore 5 /* savedBatchSize */
        start local 5 // int savedBatchSize
         1: .line 1922
            aload 0 /* this */
            iconst_2
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
         2: .line 1924
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            iload 4 /* relative */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearch:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
            astore 6 /* answer */
        start local 6 // com.sun.jndi.ldap.LdapResult answer
         3: .line 1926
            aload 0 /* this */
            iload 5 /* savedBatchSize */
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
         4: .line 1927
            aload 6 /* answer */
            areturn
        end local 6 // com.sun.jndi.ldap.LdapResult answer
        end local 5 // int savedBatchSize
        end local 4 // boolean relative
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1            name  Ljavax/naming/Name;
            0    5     2          filter  Ljava/lang/String;
            0    5     3            cons  Ljavax/naming/directory/SearchControls;
            0    5     4        relative  Z
            1    5     5  savedBatchSize  I
            3    5     6          answer  Lcom/sun/jndi/ldap/LdapResult;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      name      
      filter    
      cons      
      relative  

  private com.sun.jndi.ldap.LdapResult doSearch(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, boolean, boolean);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=12, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls cons
        start local 4 // boolean relative
        start local 5 // boolean waitFirstReply
         0: .line 1932
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         1: .line 1936
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getSearchScope:()I
            tableswitch { // 0 - 2
                    0: 2
                    1: 4
                    2: 6
              default: 4
          }
         2: .line 1938
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* scope */
        start local 6 // int scope
         3: .line 1939
            goto 7
        end local 6 // int scope
         4: .line 1942
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* scope */
        start local 6 // int scope
         5: .line 1943
            goto 7
        end local 6 // int scope
         6: .line 1945
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 6 /* scope */
        start local 6 // int scope
         7: .line 1952
      StackMap locals: int
      StackMap stack:
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningAttributes:()[Ljava/lang/String;
            astore 7 /* retattrs */
        start local 7 // java.lang.String[] retattrs
         8: .line 1953
            aload 7 /* retattrs */
            ifnull 11
            aload 7 /* retattrs */
            arraylength
            ifne 11
         9: .line 1956
            iconst_1
            anewarray java.lang.String
            astore 7 /* retattrs */
        10: .line 1957
            aload 7 /* retattrs */
            iconst_0
            ldc "1.1"
            aastore
        11: .line 1960
      StackMap locals: java.lang.String[]
      StackMap stack:
            iload 4 /* relative */
            ifeq 13
        12: .line 1961
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            goto 16
        13: .line 1962
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 15
        14: .line 1963
            ldc ""
            goto 16
        15: .line 1964
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
        16: .line 1960
      StackMap locals:
      StackMap stack: java.lang.String
            astore 8 /* nm */
        start local 8 // java.lang.String nm
        17: .line 1968
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getTimeLimit:()I
            istore 9 /* msecLimit */
        start local 9 // int msecLimit
        18: .line 1969
            iconst_0
            istore 10 /* secLimit */
        start local 10 // int secLimit
        19: .line 1971
            iload 9 /* msecLimit */
            ifle 21
        20: .line 1972
            iload 9 /* msecLimit */
            sipush 1000
            idiv
            iconst_1
            iadd
            istore 10 /* secLimit */
        21: .line 1976
      StackMap locals: java.lang.String int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 8 /* nm */
        22: .line 1977
            iload 6 /* scope */
        23: .line 1978
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        24: .line 1979
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getCountLimit:()J
            l2i
        25: .line 1980
            iload 10 /* secLimit */
        26: .line 1981
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningObjFlag:()Z
            ifeq 27
            iconst_0
            goto 28
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int int java.lang.String[] java.lang.String int int
      StackMap stack: com.sun.jndi.ldap.LdapClient java.lang.String int int int int
        27: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
        28: .line 1982
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int int java.lang.String[] java.lang.String int int
      StackMap stack: com.sun.jndi.ldap.LdapClient java.lang.String int int int int int
            aload 7 /* retattrs */
        29: .line 1983
            aload 2 /* filter */
        30: .line 1984
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.batchSize:I
        31: .line 1985
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        32: .line 1986
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
        33: .line 1987
            iload 5 /* waitFirstReply */
        34: .line 1976
            invokevirtual com.sun.jndi.ldap.LdapClient.search:(Ljava/lang/String;IIIIZ[Ljava/lang/String;Ljava/lang/String;I[Ljavax/naming/ldap/Control;Ljava/util/Hashtable;Z)Lcom/sun/jndi/ldap/LdapResult;
        35: .line 1975
            astore 11 /* answer */
        start local 11 // com.sun.jndi.ldap.LdapResult answer
        36: .line 1988
            aload 0 /* this */
            aload 11 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        37: .line 1989
            aload 11 /* answer */
        38: areturn
        end local 11 // com.sun.jndi.ldap.LdapResult answer
        end local 10 // int secLimit
        end local 9 // int msecLimit
        end local 8 // java.lang.String nm
        end local 7 // java.lang.String[] retattrs
        end local 6 // int scope
        39: .line 1991
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        40: .line 1992
            new javax.naming.CommunicationException
            dup
            aload 6 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 7 /* e2 */
        start local 7 // javax.naming.NamingException e2
        41: .line 1993
            aload 7 /* e2 */
            aload 6 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        42: .line 1994
            aload 7 /* e2 */
            athrow
        end local 7 // javax.naming.NamingException e2
        end local 6 // java.io.IOException e
        end local 5 // boolean waitFirstReply
        end local 4 // boolean relative
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   43     0            this  Lcom/sun/jndi/ldap/LdapCtx;
            0   43     1            name  Ljavax/naming/Name;
            0   43     2          filter  Ljava/lang/String;
            0   43     3            cons  Ljavax/naming/directory/SearchControls;
            0   43     4        relative  Z
            0   43     5  waitFirstReply  Z
            3    4     6           scope  I
            5    6     6           scope  I
            7   39     6           scope  I
            8   39     7        retattrs  [Ljava/lang/String;
           17   39     8              nm  Ljava/lang/String;
           18   39     9       msecLimit  I
           19   39    10        secLimit  I
           36   39    11          answer  Lcom/sun/jndi/ldap/LdapResult;
           40   43     6               e  Ljava/io/IOException;
           41   43     7              e2  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1    38      39  Class java.io.IOException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
                Name  Flags
      name            
      filter          
      cons            
      relative        
      waitFirstReply  

  private static boolean searchToCompare(java.lang.String, javax.naming.directory.SearchControls, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljavax/naming/directory/SearchControls;[Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.lang.String filter
        start local 1 // javax.naming.directory.SearchControls cons
        start local 2 // java.lang.String[] tokens
         0: .line 2021
            aload 1 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getSearchScope:()I
            ifeq 2
         1: .line 2022
            iconst_0
            ireturn
         2: .line 2026
      StackMap locals:
      StackMap stack:
            aload 1 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningAttributes:()[Ljava/lang/String;
            astore 3 /* attrs */
        start local 3 // java.lang.String[] attrs
         3: .line 2027
            aload 3 /* attrs */
            ifnull 4
            aload 3 /* attrs */
            arraylength
            ifeq 5
         4: .line 2028
      StackMap locals: java.lang.String[]
      StackMap stack:
            iconst_0
            ireturn
         5: .line 2032
      StackMap locals:
      StackMap stack:
            aload 0 /* filter */
            aload 2 /* tokens */
            invokestatic com.sun.jndi.ldap.LdapCtx.filterToAssertion:(Ljava/lang/String;[Ljava/lang/String;)Z
            ifne 7
         6: .line 2033
            iconst_0
            ireturn
         7: .line 2037
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.lang.String[] attrs
        end local 2 // java.lang.String[] tokens
        end local 1 // javax.naming.directory.SearchControls cons
        end local 0 // java.lang.String filter
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  filter  Ljava/lang/String;
            0    8     1    cons  Ljavax/naming/directory/SearchControls;
            0    8     2  tokens  [Ljava/lang/String;
            3    8     3   attrs  [Ljava/lang/String;
    MethodParameters:
        Name  Flags
      filter  
      cons    
      tokens  

  private static boolean filterToAssertion(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // java.lang.String filter
        start local 1 // java.lang.String[] tokens
         0: .line 2049
            new java.util.StringTokenizer
            dup
            aload 0 /* filter */
            ldc "="
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 2 /* assertionTokenizer */
        start local 2 // java.util.StringTokenizer assertionTokenizer
         1: .line 2051
            aload 2 /* assertionTokenizer */
            invokevirtual java.util.StringTokenizer.countTokens:()I
            iconst_2
            if_icmpeq 3
         2: .line 2052
            iconst_0
            ireturn
         3: .line 2055
      StackMap locals: java.util.StringTokenizer
      StackMap stack:
            aload 1 /* tokens */
            iconst_0
            aload 2 /* assertionTokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            aastore
         4: .line 2056
            aload 1 /* tokens */
            iconst_1
            aload 2 /* assertionTokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            aastore
         5: .line 2059
            aload 1 /* tokens */
            iconst_1
            aaload
            bipush 42
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 7
         6: .line 2060
            iconst_0
            ireturn
         7: .line 2064
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* hasParens */
        start local 3 // boolean hasParens
         8: .line 2065
            aload 1 /* tokens */
            iconst_1
            aaload
            invokevirtual java.lang.String.length:()I
            istore 4 /* len */
        start local 4 // int len
         9: .line 2067
            aload 1 /* tokens */
            iconst_0
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 40
            if_icmpne 13
        10: .line 2068
            aload 1 /* tokens */
            iconst_1
            aaload
            iload 4 /* len */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 13
        11: .line 2069
            iconst_1
            istore 3 /* hasParens */
        12: .line 2071
            goto 16
      StackMap locals: int int
      StackMap stack:
        13: aload 1 /* tokens */
            iconst_0
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 40
            if_icmpeq 15
        14: .line 2072
            aload 1 /* tokens */
            iconst_1
            aaload
            iload 4 /* len */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 16
        15: .line 2073
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        16: .line 2078
      StackMap locals:
      StackMap stack:
            new java.util.StringTokenizer
            dup
            aload 1 /* tokens */
            iconst_0
            aaload
            ldc "()&|!=~><*"
            iconst_1
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;Z)V
        17: .line 2077
            astore 5 /* illegalCharsTokenizer */
        start local 5 // java.util.StringTokenizer illegalCharsTokenizer
        18: .line 2080
            aload 5 /* illegalCharsTokenizer */
            invokevirtual java.util.StringTokenizer.countTokens:()I
            iload 3 /* hasParens */
            ifeq 19
            iconst_2
            goto 20
      StackMap locals: java.lang.String java.lang.String[] java.util.StringTokenizer int int java.util.StringTokenizer
      StackMap stack: int
        19: iconst_1
      StackMap locals: java.lang.String java.lang.String[] java.util.StringTokenizer int int java.util.StringTokenizer
      StackMap stack: int int
        20: if_icmpeq 22
        21: .line 2081
            iconst_0
            ireturn
        22: .line 2085
      StackMap locals:
      StackMap stack:
            new java.util.StringTokenizer
            dup
            aload 1 /* tokens */
            iconst_1
            aaload
            ldc "()&|!=~><*"
            iconst_1
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;Z)V
        23: .line 2084
            astore 5 /* illegalCharsTokenizer */
        24: .line 2087
            aload 5 /* illegalCharsTokenizer */
            invokevirtual java.util.StringTokenizer.countTokens:()I
            iload 3 /* hasParens */
            ifeq 25
            iconst_2
            goto 26
      StackMap locals:
      StackMap stack: int
        25: iconst_1
      StackMap locals: java.lang.String java.lang.String[] java.util.StringTokenizer int int java.util.StringTokenizer
      StackMap stack: int int
        26: if_icmpeq 28
        27: .line 2088
            iconst_0
            ireturn
        28: .line 2092
      StackMap locals:
      StackMap stack:
            iload 3 /* hasParens */
            ifeq 31
        29: .line 2093
            aload 1 /* tokens */
            iconst_0
            aload 1 /* tokens */
            iconst_0
            aaload
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aastore
        30: .line 2094
            aload 1 /* tokens */
            iconst_1
            aload 1 /* tokens */
            iconst_1
            aaload
            iconst_0
            iload 4 /* len */
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aastore
        31: .line 2097
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // java.util.StringTokenizer illegalCharsTokenizer
        end local 4 // int len
        end local 3 // boolean hasParens
        end local 2 // java.util.StringTokenizer assertionTokenizer
        end local 1 // java.lang.String[] tokens
        end local 0 // java.lang.String filter
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   32     0                 filter  Ljava/lang/String;
            0   32     1                 tokens  [Ljava/lang/String;
            1   32     2     assertionTokenizer  Ljava/util/StringTokenizer;
            8   32     3              hasParens  Z
            9   32     4                    len  I
           18   32     5  illegalCharsTokenizer  Ljava/util/StringTokenizer;
    MethodParameters:
        Name  Flags
      filter  
      tokens  

  private com.sun.jndi.ldap.LdapResult compare(javax.naming.Name, java.lang.String, java.lang.String);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljava/lang/String;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String type
        start local 3 // java.lang.String value
         0: .line 2103
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         1: .line 2104
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 4 /* nm */
        start local 4 // java.lang.String nm
         2: .line 2106
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 4 /* nm */
            aload 2 /* type */
            aload 3 /* value */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.compare:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 5 /* answer */
        start local 5 // com.sun.jndi.ldap.LdapResult answer
         3: .line 2107
            aload 0 /* this */
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         4: .line 2109
            aload 5 /* answer */
            areturn
        end local 5 // com.sun.jndi.ldap.LdapResult answer
        end local 4 // java.lang.String nm
        end local 3 // java.lang.String value
        end local 2 // java.lang.String type
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1    name  Ljavax/naming/Name;
            0    5     2    type  Ljava/lang/String;
            0    5     3   value  Ljava/lang/String;
            2    5     4      nm  Ljava/lang/String;
            3    5     5  answer  Lcom/sun/jndi/ldap/LdapResult;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
       Name  Flags
      name   
      type   
      value  

  private static javax.naming.directory.SearchControls cloneSearchControls(javax.naming.directory.SearchControls);
    descriptor: (Ljavax/naming/directory/SearchControls;)Ljavax/naming/directory/SearchControls;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=3, args_size=1
        start local 0 // javax.naming.directory.SearchControls cons
         0: .line 2113
            aload 0 /* cons */
            ifnonnull 2
         1: .line 2114
            aconst_null
            areturn
         2: .line 2116
      StackMap locals:
      StackMap stack:
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningAttributes:()[Ljava/lang/String;
            astore 1 /* retAttrs */
        start local 1 // java.lang.String[] retAttrs
         3: .line 2117
            aload 1 /* retAttrs */
            ifnull 7
         4: .line 2118
            aload 1 /* retAttrs */
            arraylength
            anewarray java.lang.String
            astore 2 /* attrs */
        start local 2 // java.lang.String[] attrs
         5: .line 2119
            aload 1 /* retAttrs */
            iconst_0
            aload 2 /* attrs */
            iconst_0
            aload 1 /* retAttrs */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 2120
            aload 2 /* attrs */
            astore 1 /* retAttrs */
        end local 2 // java.lang.String[] attrs
         7: .line 2122
      StackMap locals: java.lang.String[]
      StackMap stack:
            new javax.naming.directory.SearchControls
            dup
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getSearchScope:()I
         8: .line 2123
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getCountLimit:()J
         9: .line 2124
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getTimeLimit:()I
        10: .line 2125
            aload 1 /* retAttrs */
        11: .line 2126
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningObjFlag:()Z
        12: .line 2127
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getDerefLinkFlag:()Z
        13: .line 2122
            invokespecial javax.naming.directory.SearchControls.<init>:(IJI[Ljava/lang/String;ZZ)V
            areturn
        end local 1 // java.lang.String[] retAttrs
        end local 0 // javax.naming.directory.SearchControls cons
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      cons  Ljavax/naming/directory/SearchControls;
            3   14     1  retAttrs  [Ljava/lang/String;
            5    7     2     attrs  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      cons  

  protected java.util.Hashtable p_getEnvironment();
    descriptor: ()Ljava/util/Hashtable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2136
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;

  public java.util.Hashtable getEnvironment();
    descriptor: ()Ljava/util/Hashtable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2140
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnonnull 2
         1: .line 2141
            new java.util.Hashtable
            dup
            iconst_5
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            goto 3
         2: .line 2142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
         3: .line 2140
      StackMap locals:
      StackMap stack: java.util.Hashtable
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  public java.lang.Object removeFromEnvironment(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String propName
         0: .line 2149
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 1 /* propName */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 2
         1: .line 2150
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 2153
      StackMap locals:
      StackMap stack:
            aload 1 /* propName */
            ldc "java.naming.ldap.ref.separator"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 2154
            aload 0 /* this */
            bipush 35
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
         4: .line 2155
            goto 48
      StackMap locals:
      StackMap stack:
         5: aload 1 /* propName */
            ldc "java.naming.ldap.typesOnly"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 2156
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
         7: .line 2157
            goto 48
      StackMap locals:
      StackMap stack:
         8: aload 1 /* propName */
            ldc "java.naming.ldap.deleteRDN"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 2158
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
        10: .line 2159
            goto 48
      StackMap locals:
      StackMap stack:
        11: aload 1 /* propName */
            ldc "java.naming.ldap.derefAliases"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 2160
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        13: .line 2161
            goto 48
      StackMap locals:
      StackMap stack:
        14: aload 1 /* propName */
            ldc "java.naming.batchsize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 2162
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
        16: .line 2163
            goto 48
      StackMap locals:
      StackMap stack:
        17: aload 1 /* propName */
            ldc "java.naming.ldap.referral.limit"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        18: .line 2164
            aload 0 /* this */
            bipush 10
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
        19: .line 2165
            goto 48
      StackMap locals:
      StackMap stack:
        20: aload 1 /* propName */
            ldc "java.naming.referral"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        21: .line 2166
            aload 0 /* this */
            aconst_null
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralMode:(Ljava/lang/String;Z)V
        22: .line 2167
            goto 48
      StackMap locals:
      StackMap stack:
        23: aload 1 /* propName */
            ldc "java.naming.ldap.attributes.binary"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        24: .line 2168
            aload 0 /* this */
            aconst_null
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBinaryAttributes:(Ljava/lang/String;)V
        25: .line 2169
            goto 48
      StackMap locals:
      StackMap stack:
        26: aload 1 /* propName */
            ldc "com.sun.jndi.ldap.connect.timeout"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        27: .line 2170
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
        28: .line 2171
            goto 48
      StackMap locals:
      StackMap stack:
        29: aload 1 /* propName */
            ldc "com.sun.jndi.ldap.read.timeout"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        30: .line 2172
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
        31: .line 2176
            goto 48
      StackMap locals:
      StackMap stack:
        32: aload 1 /* propName */
            ldc "java.naming.security.protocol"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 40
        33: .line 2177
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        34: .line 2179
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
            ifeq 48
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
            ifne 48
        35: .line 2180
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        36: .line 2181
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
        37: .line 2182
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
            ifeq 48
        38: .line 2183
            aload 0 /* this */
            sipush 389
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        39: .line 2186
            goto 48
      StackMap locals:
      StackMap stack:
        40: aload 1 /* propName */
            ldc "java.naming.ldap.version"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 42
        41: .line 2187
            aload 1 /* propName */
            ldc "java.naming.ldap.factory.socket"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 44
        42: .line 2188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        43: .line 2189
            goto 48
      StackMap locals:
      StackMap stack:
        44: aload 1 /* propName */
            ldc "java.naming.security.authentication"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 47
        45: .line 2190
            aload 1 /* propName */
            ldc "java.naming.security.principal"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 47
        46: .line 2191
            aload 1 /* propName */
            ldc "java.naming.security.credentials"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 48
        47: .line 2192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        48: .line 2196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        49: .line 2197
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 1 /* propName */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String propName
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   50     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   50     1  propName  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      propName  

  public java.lang.Object addToEnvironment(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String propName
        start local 2 // java.lang.Object propVal
         0: .line 2204
            aload 2 /* propVal */
            ifnonnull 2
         1: .line 2205
            aload 0 /* this */
            aload 1 /* propName */
            invokevirtual com.sun.jndi.ldap.LdapCtx.removeFromEnvironment:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
         2: .line 2208
      StackMap locals:
      StackMap stack:
            aload 1 /* propName */
            ldc "java.naming.ldap.ref.separator"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 2209
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setRefSeparator:(Ljava/lang/String;)V
         4: .line 2210
            goto 48
      StackMap locals:
      StackMap stack:
         5: aload 1 /* propName */
            ldc "java.naming.ldap.typesOnly"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 2211
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setTypesOnly:(Ljava/lang/String;)V
         7: .line 2212
            goto 48
      StackMap locals:
      StackMap stack:
         8: aload 1 /* propName */
            ldc "java.naming.ldap.deleteRDN"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 2213
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setDeleteRDN:(Ljava/lang/String;)V
        10: .line 2214
            goto 48
      StackMap locals:
      StackMap stack:
        11: aload 1 /* propName */
            ldc "java.naming.ldap.derefAliases"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 2215
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setDerefAliases:(Ljava/lang/String;)V
        13: .line 2216
            goto 48
      StackMap locals:
      StackMap stack:
        14: aload 1 /* propName */
            ldc "java.naming.batchsize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 2217
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBatchSize:(Ljava/lang/String;)V
        16: .line 2218
            goto 48
      StackMap locals:
      StackMap stack:
        17: aload 1 /* propName */
            ldc "java.naming.ldap.referral.limit"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        18: .line 2219
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralLimit:(Ljava/lang/String;)V
        19: .line 2220
            goto 48
      StackMap locals:
      StackMap stack:
        20: aload 1 /* propName */
            ldc "java.naming.referral"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        21: .line 2221
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralMode:(Ljava/lang/String;Z)V
        22: .line 2222
            goto 48
      StackMap locals:
      StackMap stack:
        23: aload 1 /* propName */
            ldc "java.naming.ldap.attributes.binary"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        24: .line 2223
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBinaryAttributes:(Ljava/lang/String;)V
        25: .line 2224
            goto 48
      StackMap locals:
      StackMap stack:
        26: aload 1 /* propName */
            ldc "com.sun.jndi.ldap.connect.timeout"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        27: .line 2225
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setConnectTimeout:(Ljava/lang/String;)V
        28: .line 2226
            goto 48
      StackMap locals:
      StackMap stack:
        29: aload 1 /* propName */
            ldc "com.sun.jndi.ldap.read.timeout"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        30: .line 2227
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReadTimeout:(Ljava/lang/String;)V
        31: .line 2230
            goto 48
      StackMap locals:
      StackMap stack:
        32: aload 1 /* propName */
            ldc "java.naming.security.protocol"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 40
        33: .line 2231
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        34: .line 2233
            ldc "ssl"
            aload 2 /* propVal */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 48
        35: .line 2234
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        36: .line 2235
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
        37: .line 2236
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
            ifeq 48
        38: .line 2237
            aload 0 /* this */
            sipush 636
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        39: .line 2240
            goto 48
      StackMap locals:
      StackMap stack:
        40: aload 1 /* propName */
            ldc "java.naming.ldap.version"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 42
        41: .line 2241
            aload 1 /* propName */
            ldc "java.naming.ldap.factory.socket"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 44
        42: .line 2242
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        43: .line 2243
            goto 48
      StackMap locals:
      StackMap stack:
        44: aload 1 /* propName */
            ldc "java.naming.security.authentication"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 47
        45: .line 2244
            aload 1 /* propName */
            ldc "java.naming.security.principal"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 47
        46: .line 2245
            aload 1 /* propName */
            ldc "java.naming.security.credentials"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 48
        47: .line 2246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        48: .line 2250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnonnull 50
        49: .line 2251
            new java.util.Hashtable
            dup
            iconst_5
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            goto 51
        50: .line 2252
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
        51: .line 2250
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.Object
      StackMap stack: com.sun.jndi.ldap.LdapCtx java.util.Hashtable
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        52: .line 2253
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 1 /* propName */
            aload 2 /* propVal */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object propVal
        end local 1 // java.lang.String propName
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   53     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   53     1  propName  Ljava/lang/String;
            0   53     2   propVal  Ljava/lang/Object;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      propName  
      propVal   

  void setProviderUrl(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String providerUrl
         0: .line 2261
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 2
         1: .line 2262
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.provider.url"
            aload 1 /* providerUrl */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 2264
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String providerUrl
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1  providerUrl  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      providerUrl  

  void setDomainName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String domainName
         0: .line 2272
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 2
         1: .line 2273
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.domainname"
            aload 1 /* domainName */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 2275
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String domainName
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1  domainName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      domainName  

  private void initEnv();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2278
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnonnull 3
         1: .line 2280
            aload 0 /* this */
            aconst_null
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralMode:(Ljava/lang/String;Z)V
         2: .line 2281
            return
         3: .line 2285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.batchsize"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBatchSize:(Ljava/lang/String;)V
         4: .line 2288
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.ref.separator"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setRefSeparator:(Ljava/lang/String;)V
         5: .line 2291
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.deleteRDN"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setDeleteRDN:(Ljava/lang/String;)V
         6: .line 2294
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.typesOnly"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setTypesOnly:(Ljava/lang/String;)V
         7: .line 2297
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.derefAliases"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setDerefAliases:(Ljava/lang/String;)V
         8: .line 2300
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.referral.limit"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralLimit:(Ljava/lang/String;)V
         9: .line 2302
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.attributes.binary"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBinaryAttributes:(Ljava/lang/String;)V
        10: .line 2304
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.control.connect"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.naming.ldap.Control[]
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
        11: .line 2307
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.referral"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralMode:(Ljava/lang/String;Z)V
        12: .line 2310
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.connect.timeout"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setConnectTimeout:(Ljava/lang/String;)V
        13: .line 2313
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.read.timeout"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReadTimeout:(Ljava/lang/String;)V
        14: .line 2317
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  private void setDeleteRDN(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String deleteRDNProp
         0: .line 2320
            aload 1 /* deleteRDNProp */
            ifnull 4
         1: .line 2321
            aload 1 /* deleteRDNProp */
            ldc "false"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 2322
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
         3: .line 2323
            goto 5
         4: .line 2324
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
         5: .line 2326
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String deleteRDNProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/sun/jndi/ldap/LdapCtx;
            0    6     1  deleteRDNProp  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      deleteRDNProp  

  private void setTypesOnly(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String typesOnlyProp
         0: .line 2329
            aload 1 /* typesOnlyProp */
            ifnull 4
         1: .line 2330
            aload 1 /* typesOnlyProp */
            ldc "true"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 2331
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
         3: .line 2332
            goto 5
         4: .line 2333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
         5: .line 2335
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String typesOnlyProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/sun/jndi/ldap/LdapCtx;
            0    6     1  typesOnlyProp  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      typesOnlyProp  

  private void setBatchSize(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String batchSizeProp
         0: .line 2342
            aload 1 /* batchSizeProp */
            ifnull 3
         1: .line 2343
            aload 0 /* this */
            aload 1 /* batchSizeProp */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
         2: .line 2344
            goto 4
         3: .line 2345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
         4: .line 2347
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String batchSizeProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  batchSizeProp  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      batchSizeProp  

  private void setReferralMode(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String ref
        start local 2 // boolean update
         0: .line 2355
            aload 1 /* ref */
            ifnull 16
         1: .line 2356
            aload 1 /* ref */
            ldc "follow-scheme"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         2: .line 2357
            aload 0 /* this */
            iconst_4
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
         3: .line 2358
            goto 17
      StackMap locals:
      StackMap stack:
         4: aload 1 /* ref */
            ldc "follow"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 2359
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
         6: .line 2360
            goto 17
      StackMap locals:
      StackMap stack:
         7: aload 1 /* ref */
            ldc "throw"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 2361
            aload 0 /* this */
            iconst_2
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
         9: .line 2362
            goto 17
      StackMap locals:
      StackMap stack:
        10: aload 1 /* ref */
            ldc "ignore"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 2363
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
        12: .line 2364
            goto 17
        13: .line 2365
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        14: .line 2366
            ldc "Illegal value for java.naming.referral property."
        15: .line 2365
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 2369
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
        17: .line 2372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 20
        18: .line 2374
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            getstatic com.sun.jndi.ldap.LdapCtx.manageReferralControl:Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.addControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        19: .line 2376
            goto 22
      StackMap locals:
      StackMap stack:
        20: iload 2 /* update */
            ifeq 22
        21: .line 2379
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            getstatic com.sun.jndi.ldap.LdapCtx.manageReferralControl:Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.removeControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        22: .line 2382
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean update
        end local 1 // java.lang.String ref
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   23     1     ref  Ljava/lang/String;
            0   23     2  update  Z
    MethodParameters:
        Name  Flags
      ref     
      update  

  private void setDerefAliases(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String deref
         0: .line 2388
            aload 1 /* deref */
            ifnull 14
         1: .line 2389
            aload 1 /* deref */
            ldc "never"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         2: .line 2390
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
         3: .line 2391
            goto 15
      StackMap locals:
      StackMap stack:
         4: aload 1 /* deref */
            ldc "searching"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 2392
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
         6: .line 2393
            goto 15
      StackMap locals:
      StackMap stack:
         7: aload 1 /* deref */
            ldc "finding"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 2394
            aload 0 /* this */
            iconst_2
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
         9: .line 2395
            goto 15
      StackMap locals:
      StackMap stack:
        10: aload 1 /* deref */
            ldc "always"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 2396
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        12: .line 2397
            goto 15
        13: .line 2398
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal value for java.naming.ldap.derefAliases property."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 2402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        15: .line 2404
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String deref
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0   16     1  deref  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      deref  

  private void setRefSeparator(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String sepStr
         0: .line 2407
            aload 1 /* sepStr */
            ifnull 3
            aload 1 /* sepStr */
            invokevirtual java.lang.String.length:()I
            ifle 3
         1: .line 2408
            aload 0 /* this */
            aload 1 /* sepStr */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
         2: .line 2409
            goto 4
         3: .line 2410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 35
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
         4: .line 2412
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String sepStr
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  sepStr  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      sepStr  

  private void setReferralLimit(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String referralLimitProp
         0: .line 2419
            aload 1 /* referralLimitProp */
            ifnull 5
         1: .line 2420
            aload 0 /* this */
            aload 1 /* referralLimitProp */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
         2: .line 2423
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
            ifne 6
         3: .line 2424
            aload 0 /* this */
            ldc 2147483647
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
         4: .line 2425
            goto 6
         5: .line 2426
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
         6: .line 2428
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String referralLimitProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lcom/sun/jndi/ldap/LdapCtx;
            0    7     1  referralLimitProp  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      referralLimitProp  

  void setHopCount(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // int hopCount
         0: .line 2432
            aload 0 /* this */
            iload 1 /* hopCount */
            putfield com.sun.jndi.ldap.LdapCtx.hopCount:I
         1: .line 2433
            return
        end local 1 // int hopCount
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  hopCount  I
    MethodParameters:
          Name  Flags
      hopCount  

  private void setConnectTimeout(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String connectTimeoutProp
         0: .line 2439
            aload 1 /* connectTimeoutProp */
            ifnull 3
         1: .line 2440
            aload 0 /* this */
            aload 1 /* connectTimeoutProp */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
         2: .line 2441
            goto 4
         3: .line 2442
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
         4: .line 2444
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String connectTimeoutProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  connectTimeoutProp  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      connectTimeoutProp  

  private void setReadTimeout(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String readTimeoutProp
         0: .line 2450
            aload 1 /* readTimeoutProp */
            ifnull 3
         1: .line 2451
            aload 0 /* this */
            aload 1 /* readTimeoutProp */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
         2: .line 2452
            goto 4
         3: .line 2453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
         4: .line 2455
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String readTimeoutProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  readTimeoutProp  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      readTimeoutProp  

  private static java.util.Vector extractURLs(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Vector;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.String refString
         0: .line 2467
            iconst_0
            istore 1 /* separator */
        start local 1 // int separator
         1: .line 2468
            iconst_0
            istore 2 /* urlCount */
        start local 2 // int urlCount
         2: .line 2471
            goto 5
         3: .line 2472
      StackMap locals: int int
      StackMap stack:
            iinc 1 /* separator */ 1
         4: .line 2473
            iinc 2 /* urlCount */ 1
         5: .line 2471
      StackMap locals:
      StackMap stack:
            aload 0 /* refString */
            bipush 10
            iload 1 /* separator */
            invokevirtual java.lang.String.indexOf:(II)I
            dup
            istore 1 /* separator */
            ifge 3
         6: .line 2476
            new java.util.Vector
            dup
            iload 2 /* urlCount */
            invokespecial java.util.Vector.<init>:(I)V
            astore 3 /* referrals */
        start local 3 // java.util.Vector referrals
         7: .line 2480
            aload 0 /* refString */
            bipush 10
            invokevirtual java.lang.String.indexOf:(I)I
            istore 1 /* separator */
         8: .line 2481
            iload 1 /* separator */
            iconst_1
            iadd
            istore 4 /* iURL */
        start local 4 // int iURL
         9: .line 2482
            goto 12
        10: .line 2483
      StackMap locals: java.util.Vector int
      StackMap stack:
            aload 3 /* referrals */
            aload 0 /* refString */
            iload 4 /* iURL */
            iload 1 /* separator */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        11: .line 2484
            iload 1 /* separator */
            iconst_1
            iadd
            istore 4 /* iURL */
        12: .line 2482
      StackMap locals:
      StackMap stack:
            aload 0 /* refString */
            bipush 10
            iload 4 /* iURL */
            invokevirtual java.lang.String.indexOf:(II)I
            dup
            istore 1 /* separator */
            ifge 10
        13: .line 2486
            aload 3 /* referrals */
            aload 0 /* refString */
            iload 4 /* iURL */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        14: .line 2488
            aload 3 /* referrals */
            areturn
        end local 4 // int iURL
        end local 3 // java.util.Vector referrals
        end local 2 // int urlCount
        end local 1 // int separator
        end local 0 // java.lang.String refString
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0  refString  Ljava/lang/String;
            1   15     1  separator  I
            2   15     2   urlCount  I
            7   15     3  referrals  Ljava/util/Vector;
            9   15     4       iURL  I
    MethodParameters:
           Name  Flags
      refString  

  private void setBinaryAttributes(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String attrIds
         0: .line 2496
            aload 1 /* attrIds */
            ifnonnull 3
         1: .line 2497
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
         2: .line 2498
            goto 9
         3: .line 2499
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.Hashtable
            dup
            bipush 11
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            putfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
         4: .line 2501
            new java.util.StringTokenizer
            dup
            aload 1 /* attrIds */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            ldc " "
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         5: .line 2500
            astore 2 /* tokens */
        start local 2 // java.util.StringTokenizer tokens
         6: .line 2503
            goto 8
         7: .line 2504
      StackMap locals: java.util.StringTokenizer
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
            aload 2 /* tokens */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 2503
      StackMap locals:
      StackMap stack:
            aload 2 /* tokens */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 7
        end local 2 // java.util.StringTokenizer tokens
         9: .line 2507
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String attrIds
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0   10     1  attrIds  Ljava/lang/String;
            6    9     2   tokens  Ljava/util/StringTokenizer;
    MethodParameters:
         Name  Flags
      attrIds  

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2513
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.close:()V
         1: .line 2514
            goto 3
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         2: pop
         3: .line 2517
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/jndi/ldap/LdapCtx;
      Exception table:
        from    to  target  type
           0     1       2  Class javax.naming.NamingException

  public synchronized void close();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2526
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnull 3
         1: .line 2527
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            invokevirtual com.sun.jndi.ldap.EventSupport.cleanup:()V
         2: .line 2528
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.removeUnsolicited:()V
         3: .line 2532
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.enumCount:I
            ifle 6
         4: .line 2535
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.closeRequested:Z
         5: .line 2536
            return
         6: .line 2538
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
         7: .line 2549
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  public void reconnect(javax.naming.ldap.Control[]);
    descriptor: ([Ljavax/naming/ldap/Control;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.ldap.Control[] connCtls
         0: .line 2553
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnonnull 2
         1: .line 2554
            new java.util.Hashtable
            dup
            iconst_5
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            goto 3
         2: .line 2555
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
         3: .line 2553
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.ldap.Control[]
      StackMap stack: com.sun.jndi.ldap.LdapCtx java.util.Hashtable
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
         4: .line 2557
            aload 1 /* connCtls */
            ifnonnull 8
         5: .line 2558
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.control.connect"
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 2559
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
         7: .line 2560
            goto 9
         8: .line 2561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.control.connect"
            aload 0 /* this */
            aload 1 /* connCtls */
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            dup_x1
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 2564
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        10: .line 2565
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
        11: .line 2566
            return
        end local 1 // javax.naming.ldap.Control[] connCtls
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   12     1  connCtls  [Ljavax/naming/ldap/Control;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      connCtls  

  private void ensureOpen();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2569
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:(Z)V
         1: .line 2570
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  private void ensureOpen(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // boolean startTLS
         0: .line 2575
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            ifnonnull 4
         1: .line 2581
            aload 0 /* this */
            new java.util.Hashtable
            dup
            bipush 11
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
         2: .line 2582
            aload 0 /* this */
            iload 1 /* startTLS */
            invokevirtual com.sun.jndi.ldap.LdapCtx.connect:(Z)V
         3: .line 2584
            goto 20
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.sharable:Z
            ifeq 5
            iload 1 /* startTLS */
            ifeq 20
         5: .line 2586
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            dup
            astore 2
            monitorenter
         6: .line 2587
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 9
         7: .line 2588
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.referenceCount:I
            iconst_1
            if_icmpgt 9
         8: .line 2589
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            invokevirtual com.sun.jndi.ldap.LdapClient.usingSaslStreams:()Z
            ifeq 10
         9: .line 2590
      StackMap locals: com.sun.jndi.ldap.LdapClient
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        10: .line 2586
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 2
            monitorexit
        13: athrow
        14: .line 2594
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.Hashtable
            dup
            bipush 11
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        15: .line 2595
            aload 0 /* this */
            iload 1 /* startTLS */
            invokevirtual com.sun.jndi.ldap.LdapCtx.connect:(Z)V
        16: .line 2598
            goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 3
        18: .line 2599
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        19: .line 2601
            aload 3
            athrow
        20: .line 2599
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        21: .line 2602
            return
        end local 1 // boolean startTLS
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   22     1  startTLS  Z
      Exception table:
        from    to  target  type
           6    11      12  any
          12    13      12  any
           0    17      17  any
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      startTLS  

  private void connect(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=15, locals=15, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // boolean startTLS
         0: .line 2607
            aconst_null
            astore 2 /* user */
        start local 2 // java.lang.String user
         1: .line 2608
            aconst_null
            astore 3 /* passwd */
        start local 3 // java.lang.Object passwd
         2: .line 2609
            aconst_null
            astore 4 /* secProtocol */
        start local 4 // java.lang.String secProtocol
         3: .line 2610
            aconst_null
            astore 5 /* socketFactory */
        start local 5 // java.lang.String socketFactory
         4: .line 2611
            aconst_null
            astore 6 /* authMechanism */
        start local 6 // java.lang.String authMechanism
         5: .line 2612
            aconst_null
            astore 7 /* ver */
        start local 7 // java.lang.String ver
         6: .line 2614
            iconst_0
            istore 9 /* usePool */
        start local 9 // boolean usePool
         7: .line 2616
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 18
         8: .line 2617
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.principal"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* user */
         9: .line 2618
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.credentials"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* passwd */
        10: .line 2619
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.version"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* ver */
        11: .line 2621
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
            ifeq 12
            ldc "ssl"
            goto 13
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int
      StackMap stack:
        12: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.protocol"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
        13: .line 2620
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* secProtocol */
        14: .line 2622
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.factory.socket"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* socketFactory */
        15: .line 2624
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.authentication"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
        16: .line 2623
            astore 6 /* authMechanism */
        17: .line 2626
            ldc "true"
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.connect.pool"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            istore 9 /* usePool */
        18: .line 2629
      StackMap locals:
      StackMap stack:
            aload 5 /* socketFactory */
            ifnonnull 22
        19: .line 2631
            ldc "ssl"
            aload 4 /* secProtocol */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
            ldc "javax.net.ssl.SSLSocketFactory"
            goto 21
      StackMap locals:
      StackMap stack:
        20: aconst_null
        21: .line 2630
      StackMap locals:
      StackMap stack: java.lang.String
            astore 5 /* socketFactory */
        22: .line 2634
      StackMap locals:
      StackMap stack:
            aload 6 /* authMechanism */
            ifnonnull 26
        23: .line 2635
            aload 2 /* user */
            ifnonnull 24
            ldc "none"
            goto 25
      StackMap locals:
      StackMap stack:
        24: ldc "simple"
      StackMap locals:
      StackMap stack: java.lang.String
        25: astore 6 /* authMechanism */
        26: .line 2639
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            ifnonnull 27
            iconst_1
            goto 28
      StackMap locals:
      StackMap stack:
        27: iconst_0
      StackMap locals:
      StackMap stack: int
        28: istore 10 /* initial */
        start local 10 // boolean initial
        29: .line 2641
            iload 10 /* initial */
            ifeq 51
        30: .line 2642
            aload 7 /* ver */
            ifnull 31
            aload 7 /* ver */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            goto 32
        31: .line 2643
      StackMap locals: int
      StackMap stack:
            bipush 32
        32: .line 2642
      StackMap locals:
      StackMap stack: int
            istore 8 /* ldapVersion */
        start local 8 // int ldapVersion
        33: .line 2645
            aload 0 /* this */
        34: .line 2646
            iload 9 /* usePool */
        35: .line 2649
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        36: .line 2650
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.port_number:I
        37: .line 2651
            aload 5 /* socketFactory */
        38: .line 2652
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
        39: .line 2653
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
        40: .line 2654
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
        41: .line 2657
            iload 8 /* ldapVersion */
        42: .line 2658
            aload 6 /* authMechanism */
        43: .line 2659
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
        44: .line 2660
            aload 4 /* secProtocol */
        45: .line 2663
            aload 2 /* user */
        46: .line 2664
            aload 3 /* passwd */
        47: .line 2667
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        48: .line 2645
            invokestatic com.sun.jndi.ldap.LdapClient.getInstance:(ZLjava/lang/String;ILjava/lang/String;IILjava/io/OutputStream;ILjava/lang/String;[Ljavax/naming/ldap/Control;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapClient;
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
        49: .line 2674
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            invokevirtual com.sun.jndi.ldap.LdapClient.authenticateCalled:()Z
            ifeq 54
        50: .line 2675
            return
        end local 8 // int ldapVersion
        51: .line 2678
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.sharable:Z
            ifeq 53
            iload 1 /* startTLS */
            ifeq 53
        52: .line 2679
            return
        53: .line 2684
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 8 /* ldapVersion */
        start local 8 // int ldapVersion
        54: .line 2687
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            iload 10 /* initial */
        55: .line 2688
            aload 2 /* user */
            aload 3 /* passwd */
            iload 8 /* ldapVersion */
            aload 6 /* authMechanism */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        56: .line 2687
            invokevirtual com.sun.jndi.ldap.LdapClient.authenticate:(ZLjava/lang/String;Ljava/lang/Object;ILjava/lang/String;[Ljavax/naming/ldap/Control;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
            astore 11 /* answer */
        start local 11 // com.sun.jndi.ldap.LdapResult answer
        57: .line 2690
            aload 0 /* this */
            aload 11 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        58: .line 2692
            aload 11 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 84
        59: .line 2693
            iload 10 /* initial */
            ifeq 61
        60: .line 2694
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        61: .line 2696
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 0 /* this */
            aload 11 /* answer */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;)V
        end local 11 // com.sun.jndi.ldap.LdapResult answer
        end local 10 // boolean initial
        62: .line 2699
            goto 84
        end local 8 // int ldapVersion
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        63: astore 10 /* e */
        start local 10 // com.sun.jndi.ldap.LdapReferralException e
        64: .line 2700
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 66
        65: .line 2701
            aload 10 /* e */
            athrow
        66: .line 2705
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aconst_null
            astore 13 /* saved_ex */
        start local 13 // javax.naming.NamingException saved_ex
        67: .line 2711
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int com.sun.jndi.ldap.LdapReferralException top top javax.naming.NamingException
      StackMap stack:
            aload 10 /* e */
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getNextReferral:()Ljava/lang/String;
            dup
            astore 11 /* referral */
        start local 11 // java.lang.String referral
        68: ifnonnull 74
        69: .line 2714
            aload 13 /* saved_ex */
            ifnull 71
        70: .line 2715
            aload 13 /* saved_ex */
            invokevirtual javax.naming.NamingException.fillInStackTrace:()Ljava/lang/Throwable;
            checkcast javax.naming.NamingException
            athrow
        71: .line 2718
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int com.sun.jndi.ldap.LdapReferralException java.lang.String top javax.naming.NamingException
      StackMap stack:
            new javax.naming.NamingException
            dup
        72: .line 2719
            ldc "Internal error processing referral during connection"
        73: .line 2718
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            athrow
        74: .line 2724
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapURL
            dup
            aload 11 /* referral */
            invokespecial com.sun.jndi.ldap.LdapURL.<init>:(Ljava/lang/String;)V
            astore 12 /* url */
        start local 12 // com.sun.jndi.ldap.LdapURL url
        75: .line 2725
            aload 0 /* this */
            aload 12 /* url */
            invokevirtual com.sun.jndi.ldap.LdapURL.getHost:()Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        76: .line 2726
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            ifnull 78
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 78
        77: .line 2727
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            iconst_1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        78: .line 2729
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int com.sun.jndi.ldap.LdapReferralException java.lang.String com.sun.jndi.ldap.LdapURL javax.naming.NamingException
      StackMap stack:
            aload 0 /* this */
            aload 12 /* url */
            invokevirtual com.sun.jndi.ldap.LdapURL.getPort:()I
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        79: .line 2733
            aload 0 /* this */
            iload 1 /* startTLS */
            invokevirtual com.sun.jndi.ldap.LdapCtx.connect:(Z)V
        80: .line 2734
            goto 84
        81: .line 2736
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 14 /* ne */
        start local 14 // javax.naming.NamingException ne
        82: .line 2737
            aload 14 /* ne */
            astore 13 /* saved_ex */
        end local 14 // javax.naming.NamingException ne
        end local 12 // com.sun.jndi.ldap.LdapURL url
        end local 11 // java.lang.String referral
        83: .line 2709
            goto 67
        end local 13 // javax.naming.NamingException saved_ex
        end local 10 // com.sun.jndi.ldap.LdapReferralException e
        84: .line 2742
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int
      StackMap stack:
            return
        end local 9 // boolean usePool
        end local 7 // java.lang.String ver
        end local 6 // java.lang.String authMechanism
        end local 5 // java.lang.String socketFactory
        end local 4 // java.lang.String secProtocol
        end local 3 // java.lang.Object passwd
        end local 2 // java.lang.String user
        end local 1 // boolean startTLS
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   85     0           this  Lcom/sun/jndi/ldap/LdapCtx;
            0   85     1       startTLS  Z
            1   85     2           user  Ljava/lang/String;
            2   85     3         passwd  Ljava/lang/Object;
            3   85     4    secProtocol  Ljava/lang/String;
            4   85     5  socketFactory  Ljava/lang/String;
            5   85     6  authMechanism  Ljava/lang/String;
            6   85     7            ver  Ljava/lang/String;
           33   51     8    ldapVersion  I
           54   63     8    ldapVersion  I
            7   85     9        usePool  Z
           29   62    10        initial  Z
           57   62    11         answer  Lcom/sun/jndi/ldap/LdapResult;
           64   84    10              e  Lcom/sun/jndi/ldap/LdapReferralException;
           68   83    11       referral  Ljava/lang/String;
           75   83    12            url  Lcom/sun/jndi/ldap/LdapURL;
           67   84    13       saved_ex  Ljavax/naming/NamingException;
           82   83    14             ne  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
          26    50      63  Class com.sun.jndi.ldap.LdapReferralException
          51    52      63  Class com.sun.jndi.ldap.LdapReferralException
          53    62      63  Class com.sun.jndi.ldap.LdapReferralException
          79    80      81  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      startTLS  

  private void closeConnection(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // boolean hardclose
         0: .line 2745
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.removeUnsolicited:()V
         1: .line 2747
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            ifnull 4
         2: .line 2751
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            iload 1 /* hardclose */
            invokevirtual com.sun.jndi.ldap.LdapClient.close:([Ljavax/naming/ldap/Control;Z)V
         3: .line 2752
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
         4: .line 2754
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean hardclose
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  hardclose  Z
    MethodParameters:
           Name  Flags
      hardclose  

  synchronized void incEnumCount();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2761
            aload 0 /* this */
            dup
            getfield com.sun.jndi.ldap.LdapCtx.enumCount:I
            iconst_1
            iadd
            putfield com.sun.jndi.ldap.LdapCtx.enumCount:I
         1: .line 2763
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;

  synchronized void decEnumCount();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2766
            aload 0 /* this */
            dup
            getfield com.sun.jndi.ldap.LdapCtx.enumCount:I
            iconst_1
            isub
            putfield com.sun.jndi.ldap.LdapCtx.enumCount:I
         1: .line 2769
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.enumCount:I
            ifne 5
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.closeRequested:Z
            ifeq 5
         2: .line 2771
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.close:()V
         3: .line 2772
            goto 5
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         4: pop
         5: .line 2776
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/jndi/ldap/LdapCtx;
      Exception table:
        from    to  target  type
           2     3       4  Class javax.naming.NamingException

  protected void processReturnCode(com.sun.jndi.ldap.LdapResult);
    descriptor: (Lcom/sun/jndi/ldap/LdapResult;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapResult answer
         0: .line 2782
            aload 0 /* this */
            aload 1 /* answer */
            aconst_null
            aload 0 /* this */
            aconst_null
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aconst_null
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/util/Hashtable;Ljava/lang/String;)V
         1: .line 2783
            return
        end local 1 // com.sun.jndi.ldap.LdapResult answer
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  answer  Lcom/sun/jndi/ldap/LdapResult;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      answer  

  void processReturnCode(com.sun.jndi.ldap.LdapResult, javax.naming.Name);
    descriptor: (Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapResult answer
        start local 2 // javax.naming.Name remainName
         0: .line 2787
            aload 0 /* this */
            aload 1 /* answer */
         1: .line 2788
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
         2: .line 2789
            aload 0 /* this */
         3: .line 2790
            aload 2 /* remainName */
         4: .line 2791
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
         5: .line 2792
            aload 0 /* this */
            aload 2 /* remainName */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
         6: .line 2787
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/util/Hashtable;Ljava/lang/String;)V
         7: .line 2793
            return
        end local 2 // javax.naming.Name remainName
        end local 1 // com.sun.jndi.ldap.LdapResult answer
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    8     1      answer  Lcom/sun/jndi/ldap/LdapResult;
            0    8     2  remainName  Ljavax/naming/Name;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
            Name  Flags
      answer      
      remainName  

  protected void processReturnCode(com.sun.jndi.ldap.LdapResult, javax.naming.Name, java.lang.Object, javax.naming.Name, java.util.Hashtable, java.lang.String);
    descriptor: (Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/util/Hashtable;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=10, locals=14, args_size=7
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapResult res
        start local 2 // javax.naming.Name resolvedName
        start local 3 // java.lang.Object resolvedObj
        start local 4 // javax.naming.Name remainName
        start local 5 // java.util.Hashtable envprops
        start local 6 // java.lang.String fullDN
         0: .line 2799
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapClient.getErrorMessage:(ILjava/lang/String;)Ljava/lang/String;
            astore 7 /* msg */
        start local 7 // java.lang.String msg
         1: .line 2801
            aconst_null
            astore 9 /* r */
        start local 9 // com.sun.jndi.ldap.LdapReferralException r
         2: .line 2803
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            lookupswitch { // 5
                    0: 3
                    9: 75
                   10: 43
                   34: 108
                   64: 108
              default: 114
          }
         3: .line 2808
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String top com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnull 42
         4: .line 2810
            ldc "Unprocessed Continuation Reference(s)"
            astore 7 /* msg */
         5: .line 2812
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 8
         6: .line 2813
            new javax.naming.PartialResultException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
         7: .line 2814
            goto 115
        end local 8 // javax.naming.NamingException e
         8: .line 2818
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            istore 10 /* contRefCount */
        start local 10 // int contRefCount
         9: .line 2819
            aconst_null
            astore 11 /* head */
        start local 11 // com.sun.jndi.ldap.LdapReferralException head
        10: .line 2820
            aconst_null
            astore 12 /* ptr */
        start local 12 // com.sun.jndi.ldap.LdapReferralException ptr
        11: .line 2822
            ldc "Continuation Reference"
            astore 7 /* msg */
        12: .line 2825
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        13: goto 27
        14: .line 2827
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String top com.sun.jndi.ldap.LdapReferralException int com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralException int
      StackMap stack:
            new com.sun.jndi.ldap.LdapReferralException
            dup
            aload 2 /* resolvedName */
            aload 3 /* resolvedObj */
        15: .line 2828
            aload 4 /* remainName */
            aload 7 /* msg */
            aload 5 /* envprops */
            aload 6 /* fullDN */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
        16: .line 2829
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        17: .line 2827
            invokespecial com.sun.jndi.ldap.LdapReferralException.<init>:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/lang/String;Ljava/util/Hashtable;Ljava/lang/String;I[Ljavax/naming/ldap/Control;)V
            astore 9 /* r */
        18: .line 2830
            aload 9 /* r */
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iload 13 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast java.util.Vector
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setReferralInfo:(Ljava/util/Vector;Z)V
        19: .line 2832
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            iconst_1
            if_icmple 21
        20: .line 2833
            aload 9 /* r */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setHopCount:(I)V
        21: .line 2836
      StackMap locals:
      StackMap stack:
            aload 11 /* head */
            ifnonnull 24
        22: .line 2837
            aload 9 /* r */
            dup
            astore 12 /* ptr */
            astore 11 /* head */
        23: .line 2838
            goto 26
        24: .line 2839
      StackMap locals:
      StackMap stack:
            aload 12 /* ptr */
            aload 9 /* r */
            putfield com.sun.jndi.ldap.LdapReferralException.nextReferralEx:Lcom/sun/jndi/ldap/LdapReferralException;
        25: .line 2840
            aload 9 /* r */
            astore 12 /* ptr */
        26: .line 2825
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 13 /* i */
            iload 10 /* contRefCount */
            if_icmplt 14
        end local 13 // int i
        28: .line 2843
            aload 1 /* res */
            aconst_null
            putfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
        29: .line 2845
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.refEx:Lcom/sun/jndi/ldap/LdapReferralException;
            ifnonnull 32
        30: .line 2846
            aload 1 /* res */
            aload 11 /* head */
            putfield com.sun.jndi.ldap.LdapResult.refEx:Lcom/sun/jndi/ldap/LdapReferralException;
        31: .line 2848
            goto 37
        32: .line 2849
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.refEx:Lcom/sun/jndi/ldap/LdapReferralException;
            astore 12 /* ptr */
        33: .line 2851
            goto 35
        34: .line 2852
      StackMap locals:
      StackMap stack:
            aload 12 /* ptr */
            getfield com.sun.jndi.ldap.LdapReferralException.nextReferralEx:Lcom/sun/jndi/ldap/LdapReferralException;
            astore 12 /* ptr */
        35: .line 2851
      StackMap locals:
      StackMap stack:
            aload 12 /* ptr */
            getfield com.sun.jndi.ldap.LdapReferralException.nextReferralEx:Lcom/sun/jndi/ldap/LdapReferralException;
            ifnonnull 34
        36: .line 2854
            aload 12 /* ptr */
            aload 11 /* head */
            putfield com.sun.jndi.ldap.LdapReferralException.nextReferralEx:Lcom/sun/jndi/ldap/LdapReferralException;
        37: .line 2858
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
            if_icmple 42
        38: .line 2860
            new javax.naming.LimitExceededException
            dup
            ldc "Referral limit exceeded"
            invokespecial javax.naming.LimitExceededException.<init>:(Ljava/lang/String;)V
        39: .line 2859
            astore 13 /* lee */
        start local 13 // javax.naming.NamingException lee
        40: .line 2861
            aload 13 /* lee */
            aload 9 /* r */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        41: .line 2862
            aload 13 /* lee */
            athrow
        end local 13 // javax.naming.NamingException lee
        end local 12 // com.sun.jndi.ldap.LdapReferralException ptr
        end local 11 // com.sun.jndi.ldap.LdapReferralException head
        end local 10 // int contRefCount
        42: .line 2865
      StackMap locals:
      StackMap stack:
            return
        43: .line 2869
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 46
        44: .line 2870
            new javax.naming.PartialResultException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
        45: .line 2871
            goto 115
        end local 8 // javax.naming.NamingException e
        46: .line 2874
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapReferralException
            dup
            aload 2 /* resolvedName */
            aload 3 /* resolvedObj */
            aload 4 /* remainName */
        47: .line 2875
            aload 7 /* msg */
            aload 5 /* envprops */
            aload 6 /* fullDN */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        48: .line 2874
            invokespecial com.sun.jndi.ldap.LdapReferralException.<init>:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/lang/String;Ljava/util/Hashtable;Ljava/lang/String;I[Ljavax/naming/ldap/Control;)V
            astore 9 /* r */
        49: .line 2878
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnonnull 52
        50: .line 2879
            aconst_null
            astore 10 /* refs */
        start local 10 // java.util.Vector refs
        51: .line 2880
            goto 64
        end local 10 // java.util.Vector refs
      StackMap locals:
      StackMap stack:
        52: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_4
            if_icmpne 63
        53: .line 2881
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 10 /* refs */
        start local 10 // java.util.Vector refs
        54: .line 2882
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast java.util.Vector
            astore 11 /* v */
        start local 11 // java.util.Vector v
        55: .line 2883
            aload 11 /* v */
            invokevirtual java.util.Vector.iterator:()Ljava/util/Iterator;
            astore 13
            goto 59
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String top com.sun.jndi.ldap.LdapReferralException java.util.Vector java.util.Vector top java.util.Iterator
      StackMap stack:
        56: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 12 /* s */
        start local 12 // java.lang.String s
        57: .line 2884
            aload 12 /* s */
            ldc "ldap:"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 59
        58: .line 2885
            aload 10 /* refs */
            aload 12 /* s */
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // java.lang.String s
        59: .line 2883
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 56
        60: .line 2888
            aload 10 /* refs */
            invokevirtual java.util.Vector.isEmpty:()Z
            ifeq 64
        61: .line 2889
            aconst_null
            astore 10 /* refs */
        end local 11 // java.util.Vector v
        62: .line 2891
            goto 64
        end local 10 // java.util.Vector refs
        63: .line 2892
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String top com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast java.util.Vector
            astore 10 /* refs */
        start local 10 // java.util.Vector refs
        64: .line 2894
      StackMap locals: java.util.Vector
      StackMap stack:
            aload 9 /* r */
            aload 10 /* refs */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setReferralInfo:(Ljava/util/Vector;Z)V
        65: .line 2896
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            iconst_1
            if_icmple 67
        66: .line 2897
            aload 9 /* r */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setHopCount:(I)V
        67: .line 2901
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
            if_icmple 73
        68: .line 2903
            new javax.naming.LimitExceededException
            dup
            ldc "Referral limit exceeded"
            invokespecial javax.naming.LimitExceededException.<init>:(Ljava/lang/String;)V
        69: .line 2902
            astore 11 /* lee */
        start local 11 // javax.naming.NamingException lee
        70: .line 2904
            aload 11 /* lee */
            aload 9 /* r */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        71: .line 2905
            aload 11 /* lee */
            astore 8 /* e */
        end local 11 // javax.naming.NamingException lee
        start local 8 // javax.naming.NamingException e
        72: .line 2907
            goto 115
        end local 8 // javax.naming.NamingException e
        73: .line 2908
      StackMap locals:
      StackMap stack:
            aload 9 /* r */
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
        74: .line 2910
            goto 115
        end local 10 // java.util.Vector refs
        end local 8 // javax.naming.NamingException e
        75: .line 2926
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 78
        76: .line 2927
            new javax.naming.PartialResultException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
        77: .line 2928
            goto 115
        end local 8 // javax.naming.NamingException e
        78: .line 2932
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            ifnull 81
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 81
        79: .line 2933
            aload 1 /* res */
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapCtx.extractURLs:(Ljava/lang/String;)Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
        80: .line 2934
            goto 83
        81: .line 2935
      StackMap locals:
      StackMap stack:
            new javax.naming.PartialResultException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
        82: .line 2936
            goto 115
        end local 8 // javax.naming.NamingException e
        83: .line 2940
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapReferralException
            dup
            aload 2 /* resolvedName */
        84: .line 2941
            aload 3 /* resolvedObj */
        85: .line 2942
            aload 4 /* remainName */
        86: .line 2943
            aload 7 /* msg */
        87: .line 2944
            aload 5 /* envprops */
        88: .line 2945
            aload 6 /* fullDN */
        89: .line 2946
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
        90: .line 2947
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        91: .line 2940
            invokespecial com.sun.jndi.ldap.LdapReferralException.<init>:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/lang/String;Ljava/util/Hashtable;Ljava/lang/String;I[Ljavax/naming/ldap/Control;)V
            astore 9 /* r */
        92: .line 2949
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            iconst_1
            if_icmple 94
        93: .line 2950
            aload 9 /* r */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setHopCount:(I)V
        94: .line 2962
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            ifnull 95
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifne 105
        95: .line 2963
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnull 105
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            iconst_1
            if_icmpne 105
        96: .line 2965
            aload 9 /* r */
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setReferralInfo:(Ljava/util/Vector;Z)V
        97: .line 2968
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
            if_icmple 103
        98: .line 2970
            new javax.naming.LimitExceededException
            dup
            ldc "Referral limit exceeded"
            invokespecial javax.naming.LimitExceededException.<init>:(Ljava/lang/String;)V
        99: .line 2969
            astore 11 /* lee */
        start local 11 // javax.naming.NamingException lee
       100: .line 2971
            aload 11 /* lee */
            aload 9 /* r */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
       101: .line 2972
            aload 11 /* lee */
            astore 8 /* e */
        end local 11 // javax.naming.NamingException lee
        start local 8 // javax.naming.NamingException e
       102: .line 2974
            goto 115
        end local 8 // javax.naming.NamingException e
       103: .line 2975
      StackMap locals:
      StackMap stack:
            aload 9 /* r */
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
       104: .line 2978
            goto 115
        end local 8 // javax.naming.NamingException e
       105: .line 2979
      StackMap locals:
      StackMap stack:
            aload 9 /* r */
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setReferralInfo:(Ljava/util/Vector;Z)V
       106: .line 2980
            aload 1 /* res */
            aload 9 /* r */
            putfield com.sun.jndi.ldap.LdapResult.refEx:Lcom/sun/jndi/ldap/LdapReferralException;
       107: .line 2981
            return
       108: .line 2988
      StackMap locals:
      StackMap stack:
            aload 4 /* remainName */
            ifnull 112
       109: .line 2990
            new javax.naming.InvalidNameException
            dup
            new java.lang.StringBuilder
            dup
            aload 4 /* remainName */
            invokevirtual java.lang.Object.toString:()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 7 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       110: .line 2989
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
       111: .line 2991
            goto 115
        end local 8 // javax.naming.NamingException e
       112: .line 2992
      StackMap locals:
      StackMap stack:
            new javax.naming.InvalidNameException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
       113: .line 2994
            goto 115
        end local 8 // javax.naming.NamingException e
       114: .line 2997
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapCtx.mapErrorCode:(ILjava/lang/String;)Ljavax/naming/NamingException;
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
       115: .line 3000
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String javax.naming.NamingException com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 8 /* e */
            aload 2 /* resolvedName */
            invokevirtual javax.naming.NamingException.setResolvedName:(Ljavax/naming/Name;)V
       116: .line 3001
            aload 8 /* e */
            aload 3 /* resolvedObj */
            invokevirtual javax.naming.NamingException.setResolvedObj:(Ljava/lang/Object;)V
       117: .line 3002
            aload 8 /* e */
            aload 4 /* remainName */
            invokevirtual javax.naming.NamingException.setRemainingName:(Ljavax/naming/Name;)V
       118: .line 3003
            aload 8 /* e */
            athrow
        end local 9 // com.sun.jndi.ldap.LdapReferralException r
        end local 8 // javax.naming.NamingException e
        end local 7 // java.lang.String msg
        end local 6 // java.lang.String fullDN
        end local 5 // java.util.Hashtable envprops
        end local 4 // javax.naming.Name remainName
        end local 3 // java.lang.Object resolvedObj
        end local 2 // javax.naming.Name resolvedName
        end local 1 // com.sun.jndi.ldap.LdapResult res
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0  119     0          this  Lcom/sun/jndi/ldap/LdapCtx;
            0  119     1           res  Lcom/sun/jndi/ldap/LdapResult;
            0  119     2  resolvedName  Ljavax/naming/Name;
            0  119     3   resolvedObj  Ljava/lang/Object;
            0  119     4    remainName  Ljavax/naming/Name;
            0  119     5      envprops  Ljava/util/Hashtable;
            0  119     6        fullDN  Ljava/lang/String;
            1  119     7           msg  Ljava/lang/String;
            7    8     8             e  Ljavax/naming/NamingException;
           45   46     8             e  Ljavax/naming/NamingException;
           72   73     8             e  Ljavax/naming/NamingException;
           74   75     8             e  Ljavax/naming/NamingException;
           77   78     8             e  Ljavax/naming/NamingException;
           82   83     8             e  Ljavax/naming/NamingException;
          102  103     8             e  Ljavax/naming/NamingException;
          104  105     8             e  Ljavax/naming/NamingException;
          111  112     8             e  Ljavax/naming/NamingException;
          113  114     8             e  Ljavax/naming/NamingException;
          115  119     8             e  Ljavax/naming/NamingException;
            2  119     9             r  Lcom/sun/jndi/ldap/LdapReferralException;
            9   42    10  contRefCount  I
           10   42    11          head  Lcom/sun/jndi/ldap/LdapReferralException;
           11   42    12           ptr  Lcom/sun/jndi/ldap/LdapReferralException;
           13   28    13             i  I
           40   42    13           lee  Ljavax/naming/NamingException;
           51   52    10          refs  Ljava/util/Vector<Ljava/lang/String;>;
           54   63    10          refs  Ljava/util/Vector<Ljava/lang/String;>;
           64   75    10          refs  Ljava/util/Vector<Ljava/lang/String;>;
           55   62    11             v  Ljava/util/Vector<Ljava/lang/String;>;
           57   59    12             s  Ljava/lang/String;
           70   72    11           lee  Ljavax/naming/NamingException;
          100  102    11           lee  Ljavax/naming/NamingException;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
              Name  Flags
      res           
      resolvedName  
      resolvedObj   
      remainName    
      envprops      
      fullDN        

  public static javax.naming.NamingException mapErrorCode(int, java.lang.String);
    descriptor: (ILjava/lang/String;)Ljavax/naming/NamingException;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // int errorCode
        start local 1 // java.lang.String errorMessage
         0: .line 3018
            iload 0 /* errorCode */
            ifne 2
         1: .line 3019
            aconst_null
            areturn
         2: .line 3021
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* e */
        start local 2 // javax.naming.NamingException e
         3: .line 3022
            iload 0 /* errorCode */
            aload 1 /* errorMessage */
            invokestatic com.sun.jndi.ldap.LdapClient.getErrorMessage:(ILjava/lang/String;)Ljava/lang/String;
            astore 3 /* message */
        start local 3 // java.lang.String message
         4: .line 3024
            iload 0 /* errorCode */
            tableswitch { // 1 - 80
                    1: 33
                    2: 37
                    3: 41
                    4: 39
                    5: 51
                    6: 51
                    7: 11
                    8: 11
                    9: 57
                   10: 55
                   11: 53
                   12: 43
                   13: 11
                   14: 15
                   15: 61
                   16: 25
                   17: 47
                   18: 17
                   19: 21
                   20: 9
                   21: 21
                   22: 61
                   23: 61
                   24: 61
                   25: 61
                   26: 61
                   27: 61
                   28: 61
                   29: 61
                   30: 61
                   31: 61
                   32: 27
                   33: 7
                   34: 59
                   35: 51
                   36: 5
                   37: 61
                   38: 61
                   39: 61
                   40: 61
                   41: 61
                   42: 61
                   43: 61
                   44: 61
                   45: 61
                   46: 61
                   47: 61
                   48: 11
                   49: 15
                   50: 19
                   51: 45
                   52: 45
                   53: 49
                   54: 23
                   55: 61
                   56: 61
                   57: 61
                   58: 61
                   59: 61
                   60: 61
                   61: 61
                   62: 61
                   63: 61
                   64: 59
                   65: 29
                   66: 31
                   67: 29
                   68: 13
                   69: 29
                   70: 61
                   71: 61
                   72: 61
                   73: 61
                   74: 61
                   75: 61
                   76: 61
                   77: 61
                   78: 61
                   79: 61
                   80: 35
              default: 61
          }
         5: .line 3027
      StackMap locals: javax.naming.NamingException java.lang.String
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
         6: .line 3028
            goto 62
         7: .line 3031
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
         8: .line 3032
            goto 62
         9: .line 3035
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.AttributeInUseException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.AttributeInUseException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        10: .line 3036
            goto 62
        11: .line 3042
      StackMap locals:
      StackMap stack:
            new javax.naming.AuthenticationNotSupportedException
            dup
            aload 3 /* message */
            invokespecial javax.naming.AuthenticationNotSupportedException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        12: .line 3043
            goto 62
        13: .line 3046
      StackMap locals:
      StackMap stack:
            new javax.naming.NameAlreadyBoundException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NameAlreadyBoundException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        14: .line 3047
            goto 62
        15: .line 3051
      StackMap locals:
      StackMap stack:
            new javax.naming.AuthenticationException
            dup
            aload 3 /* message */
            invokespecial javax.naming.AuthenticationException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        16: .line 3052
            goto 62
        17: .line 3055
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.InvalidSearchFilterException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        18: .line 3056
            goto 62
        19: .line 3059
      StackMap locals:
      StackMap stack:
            new javax.naming.NoPermissionException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NoPermissionException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        20: .line 3060
            goto 62
        21: .line 3064
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.InvalidAttributeValueException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        22: .line 3065
            goto 62
        23: .line 3068
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        24: .line 3069
            goto 62
        25: .line 3072
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.NoSuchAttributeException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.NoSuchAttributeException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        26: .line 3073
            goto 62
        27: .line 3076
      StackMap locals:
      StackMap stack:
            new javax.naming.NameNotFoundException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NameNotFoundException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        28: .line 3077
            goto 62
        29: .line 3082
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.SchemaViolationException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.SchemaViolationException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        30: .line 3083
            goto 62
        31: .line 3086
      StackMap locals:
      StackMap stack:
            new javax.naming.ContextNotEmptyException
            dup
            aload 3 /* message */
            invokespecial javax.naming.ContextNotEmptyException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        32: .line 3087
            goto 62
        33: .line 3091
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        34: .line 3092
            goto 62
        35: .line 3095
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        36: .line 3096
            goto 62
        37: .line 3099
      StackMap locals:
      StackMap stack:
            new javax.naming.CommunicationException
            dup
            aload 3 /* message */
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        38: .line 3100
            goto 62
        39: .line 3103
      StackMap locals:
      StackMap stack:
            new javax.naming.SizeLimitExceededException
            dup
            aload 3 /* message */
            invokespecial javax.naming.SizeLimitExceededException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        40: .line 3104
            goto 62
        41: .line 3107
      StackMap locals:
      StackMap stack:
            new javax.naming.TimeLimitExceededException
            dup
            aload 3 /* message */
            invokespecial javax.naming.TimeLimitExceededException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        42: .line 3108
            goto 62
        43: .line 3111
      StackMap locals:
      StackMap stack:
            new javax.naming.OperationNotSupportedException
            dup
            aload 3 /* message */
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        44: .line 3112
            goto 62
        45: .line 3116
      StackMap locals:
      StackMap stack:
            new javax.naming.ServiceUnavailableException
            dup
            aload 3 /* message */
            invokespecial javax.naming.ServiceUnavailableException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        46: .line 3117
            goto 62
        47: .line 3120
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.InvalidAttributeIdentifierException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.InvalidAttributeIdentifierException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        48: .line 3121
            goto 62
        49: .line 3124
      StackMap locals:
      StackMap stack:
            new javax.naming.OperationNotSupportedException
            dup
            aload 3 /* message */
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        50: .line 3125
            goto 62
        51: .line 3132
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        52: .line 3133
            goto 62
        53: .line 3136
      StackMap locals:
      StackMap stack:
            new javax.naming.LimitExceededException
            dup
            aload 3 /* message */
            invokespecial javax.naming.LimitExceededException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        54: .line 3137
            goto 62
        55: .line 3140
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        56: .line 3141
            goto 62
        57: .line 3144
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        58: .line 3145
            goto 62
        59: .line 3149
      StackMap locals:
      StackMap stack:
            new javax.naming.InvalidNameException
            dup
            aload 3 /* message */
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        60: .line 3150
            goto 62
        61: .line 3153
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        62: .line 3157
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            areturn
        end local 3 // java.lang.String message
        end local 2 // javax.naming.NamingException e
        end local 1 // java.lang.String errorMessage
        end local 0 // int errorCode
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   63     0     errorCode  I
            0   63     1  errorMessage  Ljava/lang/String;
            3   63     2             e  Ljavax/naming/NamingException;
            4   63     3       message  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      errorCode     
      errorMessage  

  public javax.naming.ldap.ExtendedResponse extendedOperation(javax.naming.ldap.ExtendedRequest);
    descriptor: (Ljavax/naming/ldap/ExtendedRequest;)Ljavax/naming/ldap/ExtendedResponse;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.ldap.ExtendedRequest request
         0: .line 3165
            aload 1 /* request */
            invokeinterface javax.naming.ldap.ExtendedRequest.getID:()Ljava/lang/String;
            ldc "1.3.6.1.4.1.1466.20037"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            istore 2 /* startTLS */
        start local 2 // boolean startTLS
         1: .line 3166
            aload 0 /* this */
            iload 2 /* startTLS */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:(Z)V
         2: .line 3171
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 1 /* request */
            invokeinterface javax.naming.ldap.ExtendedRequest.getID:()Ljava/lang/String;
            aload 1 /* request */
            invokeinterface javax.naming.ldap.ExtendedRequest.getEncodedValue:()[B
         3: .line 3172
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            iload 2 /* startTLS */
         4: .line 3171
            invokevirtual com.sun.jndi.ldap.LdapClient.extendedOp:(Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Z)Lcom/sun/jndi/ldap/LdapResult;
         5: .line 3170
            astore 3 /* answer */
        start local 3 // com.sun.jndi.ldap.LdapResult answer
         6: .line 3173
            aload 0 /* this */
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         7: .line 3175
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 9
         8: .line 3176
            aload 0 /* this */
            aload 3 /* answer */
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
         9: .line 3180
      StackMap locals: int com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.extensionValue:[B
            ifnonnull 11
        10: .line 3181
            iconst_0
            goto 12
        11: .line 3182
      StackMap locals:
      StackMap stack:
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.extensionValue:[B
            arraylength
        12: .line 3180
      StackMap locals:
      StackMap stack: int
            istore 4 /* len */
        start local 4 // int len
        13: .line 3185
            aload 1 /* request */
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.extensionId:Ljava/lang/String;
        14: .line 3186
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.extensionValue:[B
            iconst_0
            iload 4 /* len */
        15: .line 3185
            invokeinterface javax.naming.ldap.ExtendedRequest.createExtendedResponse:(Ljava/lang/String;[BII)Ljavax/naming/ldap/ExtendedResponse;
        16: .line 3184
            astore 5 /* er */
        start local 5 // javax.naming.ldap.ExtendedResponse er
        17: .line 3188
            aload 5 /* er */
            instanceof com.sun.jndi.ldap.ext.StartTlsResponseImpl
            ifeq 22
        18: .line 3191
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 19
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.domainname"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            goto 20
      StackMap locals: int javax.naming.ldap.ExtendedResponse
      StackMap stack:
        19: aconst_null
        20: .line 3190
      StackMap locals:
      StackMap stack: java.lang.Object
            checkcast java.lang.String
            astore 6 /* domainName */
        start local 6 // java.lang.String domainName
        21: .line 3192
            aload 5 /* er */
            checkcast com.sun.jndi.ldap.ext.StartTlsResponseImpl
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 6 /* domainName */
            invokevirtual com.sun.jndi.ldap.ext.StartTlsResponseImpl.setConnection:(Lcom/sun/jndi/ldap/Connection;Ljava/lang/String;)V
        end local 6 // java.lang.String domainName
        22: .line 3194
      StackMap locals:
      StackMap stack:
            aload 5 /* er */
        23: areturn
        end local 5 // javax.naming.ldap.ExtendedResponse er
        end local 4 // int len
        end local 3 // com.sun.jndi.ldap.LdapResult answer
        24: .line 3196
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.ldap.ExtendedRequest int
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 3 /* e */
        start local 3 // com.sun.jndi.ldap.LdapReferralException e
        25: .line 3198
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 27
        26: .line 3199
            aload 3 /* e */
            athrow
        27: .line 3205
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 3 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        28: .line 3204
            astore 4 /* refCtx */
        start local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        29: .line 3210
            aload 4 /* refCtx */
            aload 1 /* request */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.extendedOperation:(Ljavax/naming/ldap/ExtendedRequest;)Ljavax/naming/ldap/ExtendedResponse;
            astore 7
        30: .line 3218
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        31: .line 3210
            aload 7
            areturn
        32: .line 3212
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.ldap.ExtendedRequest int com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* re */
        start local 5 // com.sun.jndi.ldap.LdapReferralException re
        33: .line 3213
            aload 5 /* re */
            astore 3 /* e */
        34: .line 3218
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        35: .line 3214
            goto 27
        end local 5 // com.sun.jndi.ldap.LdapReferralException re
        36: .line 3216
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        37: .line 3218
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        38: .line 3219
            aload 6
            athrow
        end local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 3 // com.sun.jndi.ldap.LdapReferralException e
        39: .line 3222
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.ldap.ExtendedRequest int
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        40: .line 3223
            new javax.naming.CommunicationException
            dup
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 4 /* e2 */
        start local 4 // javax.naming.NamingException e2
        41: .line 3224
            aload 4 /* e2 */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        42: .line 3225
            aload 4 /* e2 */
            athrow
        end local 4 // javax.naming.NamingException e2
        end local 3 // java.io.IOException e
        end local 2 // boolean startTLS
        end local 1 // javax.naming.ldap.ExtendedRequest request
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   43     1     request  Ljavax/naming/ldap/ExtendedRequest;
            1   43     2    startTLS  Z
            6   24     3      answer  Lcom/sun/jndi/ldap/LdapResult;
           13   24     4         len  I
           17   24     5          er  Ljavax/naming/ldap/ExtendedResponse;
           21   22     6  domainName  Ljava/lang/String;
           25   39     3           e  Lcom/sun/jndi/ldap/LdapReferralException;
           29   39     4      refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           33   36     5          re  Lcom/sun/jndi/ldap/LdapReferralException;
           40   43     3           e  Ljava/io/IOException;
           41   43     4          e2  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2    23      24  Class com.sun.jndi.ldap.LdapReferralException
          29    30      32  Class com.sun.jndi.ldap.LdapReferralException
          29    30      36  any
          32    34      36  any
           2    23      39  Class java.io.IOException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      request  

  public void setRequestControls(javax.naming.ldap.Control[]);
    descriptor: ([Ljavax/naming/ldap/Control;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.ldap.Control[] reqCtls
         0: .line 3230
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 3
         1: .line 3231
            aload 0 /* this */
            aload 1 /* reqCtls */
            getstatic com.sun.jndi.ldap.LdapCtx.manageReferralControl:Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.addControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
         2: .line 3232
            goto 4
         3: .line 3233
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
         4: .line 3235
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.naming.ldap.Control[] reqCtls
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  reqCtls  [Ljavax/naming/ldap/Control;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      reqCtls  

  public javax.naming.ldap.Control[] getRequestControls();
    descriptor: ()[Ljavax/naming/ldap/Control;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3238
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  public javax.naming.ldap.Control[] getConnectControls();
    descriptor: ()[Ljavax/naming/ldap/Control;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3242
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  public javax.naming.ldap.Control[] getResponseControls();
    descriptor: ()[Ljavax/naming/ldap/Control;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3246
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            ifnull 1
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            invokevirtual com.sun.jndi.ldap.LdapCtx.convertControls:(Ljava/util/Vector;)[Ljavax/naming/ldap/Control;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: javax.naming.ldap.Control[]
         2: areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  javax.naming.ldap.Control[] convertControls(java.util.Vector);
    descriptor: (Ljava/util/Vector;)[Ljavax/naming/ldap/Control;
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.util.Vector ctls
         0: .line 3254
            aload 1 /* ctls */
            invokevirtual java.util.Vector.size:()I
            istore 2 /* count */
        start local 2 // int count
         1: .line 3256
            iload 2 /* count */
            ifne 3
         2: .line 3257
            aconst_null
            areturn
         3: .line 3260
      StackMap locals: int
      StackMap stack:
            iload 2 /* count */
            anewarray javax.naming.ldap.Control
            astore 3 /* controls */
        start local 3 // javax.naming.ldap.Control[] controls
         4: .line 3262
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 14
         6: .line 3264
      StackMap locals: javax.naming.ldap.Control[] int
      StackMap stack:
            aload 3 /* controls */
            iload 4 /* i */
            getstatic com.sun.jndi.ldap.LdapCtx.myResponseControlFactory:Ljavax/naming/ldap/ControlFactory;
         7: .line 3265
            aload 1 /* ctls */
            iload 4 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast javax.naming.ldap.Control
         8: .line 3264
            invokevirtual javax.naming.ldap.ControlFactory.getControlInstance:(Ljavax/naming/ldap/Control;)Ljavax/naming/ldap/Control;
            aastore
         9: .line 3268
            aload 3 /* controls */
            iload 4 /* i */
            aaload
            ifnonnull 13
        10: .line 3269
            aload 3 /* controls */
            iload 4 /* i */
        11: .line 3270
            aload 1 /* ctls */
            iload 4 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast javax.naming.ldap.Control
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        12: .line 3269
            invokestatic javax.naming.ldap.ControlFactory.getControlInstance:(Ljavax/naming/ldap/Control;Ljavax/naming/Context;Ljava/util/Hashtable;)Ljavax/naming/ldap/Control;
            aastore
        13: .line 3262
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            iload 2 /* count */
            if_icmplt 6
        end local 4 // int i
        15: .line 3273
            aload 3 /* controls */
            areturn
        end local 3 // javax.naming.ldap.Control[] controls
        end local 2 // int count
        end local 1 // java.util.Vector ctls
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   16     1      ctls  Ljava/util/Vector;
            1   16     2     count  I
            4   16     3  controls  [Ljavax/naming/ldap/Control;
            5   15     4         i  I
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      ctls  

  private static javax.naming.ldap.Control[] addControl(javax.naming.ldap.Control[], javax.naming.ldap.Control);
    descriptor: ([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // javax.naming.ldap.Control[] prevCtls
        start local 1 // javax.naming.ldap.Control addition
         0: .line 3277
            aload 0 /* prevCtls */
            ifnonnull 2
         1: .line 3278
            iconst_1
            anewarray javax.naming.ldap.Control
            dup
            iconst_0
            aload 1 /* addition */
            aastore
            areturn
         2: .line 3282
      StackMap locals:
      StackMap stack:
            aload 0 /* prevCtls */
            aload 1 /* addition */
            invokestatic com.sun.jndi.ldap.LdapCtx.findControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)I
            istore 2 /* found */
        start local 2 // int found
         3: .line 3283
            iload 2 /* found */
            iconst_m1
            if_icmpeq 5
         4: .line 3284
            aload 0 /* prevCtls */
            areturn
         5: .line 3287
      StackMap locals: int
      StackMap stack:
            aload 0 /* prevCtls */
            arraylength
            iconst_1
            iadd
            anewarray javax.naming.ldap.Control
            astore 3 /* newCtls */
        start local 3 // javax.naming.ldap.Control[] newCtls
         6: .line 3288
            aload 0 /* prevCtls */
            iconst_0
            aload 3 /* newCtls */
            iconst_0
            aload 0 /* prevCtls */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 3289
            aload 3 /* newCtls */
            aload 0 /* prevCtls */
            arraylength
            aload 1 /* addition */
            aastore
         8: .line 3290
            aload 3 /* newCtls */
            areturn
        end local 3 // javax.naming.ldap.Control[] newCtls
        end local 2 // int found
        end local 1 // javax.naming.ldap.Control addition
        end local 0 // javax.naming.ldap.Control[] prevCtls
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0  prevCtls  [Ljavax/naming/ldap/Control;
            0    9     1  addition  Ljavax/naming/ldap/Control;
            3    9     2     found  I
            6    9     3   newCtls  [Ljavax/naming/ldap/Control;
    MethodParameters:
          Name  Flags
      prevCtls  
      addition  

  private static int findControl(javax.naming.ldap.Control[], javax.naming.ldap.Control);
    descriptor: ([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.naming.ldap.Control[] ctls
        start local 1 // javax.naming.ldap.Control target
         0: .line 3294
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 3295
      StackMap locals: int
      StackMap stack:
            aload 0 /* ctls */
            iload 2 /* i */
            aaload
            aload 1 /* target */
            if_acmpne 4
         3: .line 3296
            iload 2 /* i */
            ireturn
         4: .line 3294
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* ctls */
            arraylength
            if_icmplt 2
        end local 2 // int i
         6: .line 3299
            iconst_m1
            ireturn
        end local 1 // javax.naming.ldap.Control target
        end local 0 // javax.naming.ldap.Control[] ctls
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    ctls  [Ljavax/naming/ldap/Control;
            0    7     1  target  Ljavax/naming/ldap/Control;
            1    6     2       i  I
    MethodParameters:
        Name  Flags
      ctls    
      target  

  private static javax.naming.ldap.Control[] removeControl(javax.naming.ldap.Control[], javax.naming.ldap.Control);
    descriptor: ([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // javax.naming.ldap.Control[] prevCtls
        start local 1 // javax.naming.ldap.Control target
         0: .line 3303
            aload 0 /* prevCtls */
            ifnonnull 2
         1: .line 3304
            aconst_null
            areturn
         2: .line 3308
      StackMap locals:
      StackMap stack:
            aload 0 /* prevCtls */
            aload 1 /* target */
            invokestatic com.sun.jndi.ldap.LdapCtx.findControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)I
            istore 2 /* found */
        start local 2 // int found
         3: .line 3309
            iload 2 /* found */
            iconst_m1
            if_icmpne 5
         4: .line 3310
            aload 0 /* prevCtls */
            areturn
         5: .line 3314
      StackMap locals: int
      StackMap stack:
            aload 0 /* prevCtls */
            arraylength
            iconst_1
            isub
            anewarray javax.naming.ldap.Control
            astore 3 /* newCtls */
        start local 3 // javax.naming.ldap.Control[] newCtls
         6: .line 3315
            aload 0 /* prevCtls */
            iconst_0
            aload 3 /* newCtls */
            iconst_0
            iload 2 /* found */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 3316
            aload 0 /* prevCtls */
            iload 2 /* found */
            iconst_1
            iadd
            aload 3 /* newCtls */
            iload 2 /* found */
         8: .line 3317
            aload 0 /* prevCtls */
            arraylength
            iload 2 /* found */
            isub
            iconst_1
            isub
         9: .line 3316
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 3318
            aload 3 /* newCtls */
            areturn
        end local 3 // javax.naming.ldap.Control[] newCtls
        end local 2 // int found
        end local 1 // javax.naming.ldap.Control target
        end local 0 // javax.naming.ldap.Control[] prevCtls
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0  prevCtls  [Ljavax/naming/ldap/Control;
            0   11     1    target  Ljavax/naming/ldap/Control;
            3   11     2     found  I
            6   11     3   newCtls  [Ljavax/naming/ldap/Control;
    MethodParameters:
          Name  Flags
      prevCtls  
      target    

  private static javax.naming.ldap.Control[] cloneControls(javax.naming.ldap.Control[]);
    descriptor: ([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // javax.naming.ldap.Control[] ctls
         0: .line 3322
            aload 0 /* ctls */
            ifnonnull 2
         1: .line 3323
            aconst_null
            areturn
         2: .line 3325
      StackMap locals:
      StackMap stack:
            aload 0 /* ctls */
            arraylength
            anewarray javax.naming.ldap.Control
            astore 1 /* copiedCtls */
        start local 1 // javax.naming.ldap.Control[] copiedCtls
         3: .line 3326
            aload 0 /* ctls */
            iconst_0
            aload 1 /* copiedCtls */
            iconst_0
            aload 0 /* ctls */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 3327
            aload 1 /* copiedCtls */
            areturn
        end local 1 // javax.naming.ldap.Control[] copiedCtls
        end local 0 // javax.naming.ldap.Control[] ctls
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        ctls  [Ljavax/naming/ldap/Control;
            3    5     1  copiedCtls  [Ljavax/naming/ldap/Control;
    MethodParameters:
      Name  Flags
      ctls  

  public void addNamingListener(javax.naming.Name, int, javax.naming.event.NamingListener);
    descriptor: (Ljavax/naming/Name;ILjavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name nm
        start local 2 // int scope
        start local 3 // javax.naming.event.NamingListener l
         0: .line 3340
            aload 0 /* this */
            aload 1 /* nm */
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
            iload 2 /* scope */
            aload 3 /* l */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addNamingListener:(Ljava/lang/String;ILjavax/naming/event/NamingListener;)V
         1: .line 3341
            return
        end local 3 // javax.naming.event.NamingListener l
        end local 2 // int scope
        end local 1 // javax.naming.Name nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1     nm  Ljavax/naming/Name;
            0    2     2  scope  I
            0    2     3      l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      nm     
      scope  
      l      

  public void addNamingListener(java.lang.String, int, javax.naming.event.NamingListener);
    descriptor: (Ljava/lang/String;ILjavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String nm
        start local 2 // int scope
        start local 3 // javax.naming.event.NamingListener l
         0: .line 3345
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnonnull 2
         1: .line 3346
            aload 0 /* this */
            new com.sun.jndi.ldap.EventSupport
            dup
            aload 0 /* this */
            invokespecial com.sun.jndi.ldap.EventSupport.<init>:(Lcom/sun/jndi/ldap/LdapCtx;)V
            putfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
         2: .line 3347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            new javax.naming.CompositeName
            dup
            aload 1 /* nm */
            invokespecial javax.naming.CompositeName.<init>:(Ljava/lang/String;)V
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
         3: .line 3348
            iload 2 /* scope */
            aload 3 /* l */
         4: .line 3347
            invokevirtual com.sun.jndi.ldap.EventSupport.addNamingListener:(Ljava/lang/String;ILjavax/naming/event/NamingListener;)V
         5: .line 3351
            aload 3 /* l */
            instanceof javax.naming.ldap.UnsolicitedNotificationListener
            ifeq 7
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
            ifne 7
         6: .line 3352
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addUnsolicited:()V
         7: .line 3354
      StackMap locals:
      StackMap stack:
            return
        end local 3 // javax.naming.event.NamingListener l
        end local 2 // int scope
        end local 1 // java.lang.String nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0    8     1     nm  Ljava/lang/String;
            0    8     2  scope  I
            0    8     3      l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      nm     
      scope  
      l      

  public void removeNamingListener(javax.naming.event.NamingListener);
    descriptor: (Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.event.NamingListener l
         0: .line 3357
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnonnull 2
         1: .line 3358
            return
         2: .line 3360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            aload 1 /* l */
            invokevirtual com.sun.jndi.ldap.EventSupport.removeNamingListener:(Ljavax/naming/event/NamingListener;)V
         3: .line 3363
            aload 1 /* l */
            instanceof javax.naming.ldap.UnsolicitedNotificationListener
            ifeq 6
         4: .line 3364
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            invokevirtual com.sun.jndi.ldap.EventSupport.hasUnsolicited:()Z
            ifne 6
         5: .line 3365
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.removeUnsolicited:()V
         6: .line 3367
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.naming.event.NamingListener l
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    7     1     l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      l     

  public void addNamingListener(java.lang.String, java.lang.String, javax.naming.directory.SearchControls, javax.naming.event.NamingListener);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String nm
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls ctls
        start local 4 // javax.naming.event.NamingListener l
         0: .line 3371
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnonnull 2
         1: .line 3372
            aload 0 /* this */
            new com.sun.jndi.ldap.EventSupport
            dup
            aload 0 /* this */
            invokespecial com.sun.jndi.ldap.EventSupport.<init>:(Lcom/sun/jndi/ldap/LdapCtx;)V
            putfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
         2: .line 3373
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            new javax.naming.CompositeName
            dup
            aload 1 /* nm */
            invokespecial javax.naming.CompositeName.<init>:(Ljava/lang/String;)V
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
         3: .line 3374
            aload 2 /* filter */
            aload 3 /* ctls */
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneSearchControls:(Ljavax/naming/directory/SearchControls;)Ljavax/naming/directory/SearchControls;
            aload 4 /* l */
         4: .line 3373
            invokevirtual com.sun.jndi.ldap.EventSupport.addNamingListener:(Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
         5: .line 3377
            aload 4 /* l */
            instanceof javax.naming.ldap.UnsolicitedNotificationListener
            ifeq 7
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
            ifne 7
         6: .line 3378
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addUnsolicited:()V
         7: .line 3380
      StackMap locals:
      StackMap stack:
            return
        end local 4 // javax.naming.event.NamingListener l
        end local 3 // javax.naming.directory.SearchControls ctls
        end local 2 // java.lang.String filter
        end local 1 // java.lang.String nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    8     1      nm  Ljava/lang/String;
            0    8     2  filter  Ljava/lang/String;
            0    8     3    ctls  Ljavax/naming/directory/SearchControls;
            0    8     4       l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      nm      
      filter  
      ctls    
      l       

  public void addNamingListener(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, javax.naming.event.NamingListener);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name nm
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls ctls
        start local 4 // javax.naming.event.NamingListener l
         0: .line 3384
            aload 0 /* this */
            aload 1 /* nm */
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
            aload 2 /* filter */
            aload 3 /* ctls */
            aload 4 /* l */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addNamingListener:(Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
         1: .line 3385
            return
        end local 4 // javax.naming.event.NamingListener l
        end local 3 // javax.naming.directory.SearchControls ctls
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1      nm  Ljavax/naming/Name;
            0    2     2  filter  Ljava/lang/String;
            0    2     3    ctls  Ljavax/naming/directory/SearchControls;
            0    2     4       l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      nm      
      filter  
      ctls    
      l       

  public void addNamingListener(javax.naming.Name, java.lang.String, java.lang.Object[], javax.naming.directory.SearchControls, javax.naming.event.NamingListener);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;[Ljava/lang/Object;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name nm
        start local 2 // java.lang.String filter
        start local 3 // java.lang.Object[] filterArgs
        start local 4 // javax.naming.directory.SearchControls ctls
        start local 5 // javax.naming.event.NamingListener l
         0: .line 3389
            aload 0 /* this */
            aload 1 /* nm */
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
            aload 2 /* filter */
            aload 3 /* filterArgs */
            aload 4 /* ctls */
            aload 5 /* l */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addNamingListener:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
         1: .line 3390
            return
        end local 5 // javax.naming.event.NamingListener l
        end local 4 // javax.naming.directory.SearchControls ctls
        end local 3 // java.lang.Object[] filterArgs
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1          nm  Ljavax/naming/Name;
            0    2     2      filter  Ljava/lang/String;
            0    2     3  filterArgs  [Ljava/lang/Object;
            0    2     4        ctls  Ljavax/naming/directory/SearchControls;
            0    2     5           l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
            Name  Flags
      nm          
      filter      
      filterArgs  
      ctls        
      l           

  public void addNamingListener(java.lang.String, java.lang.String, java.lang.Object[], javax.naming.directory.SearchControls, javax.naming.event.NamingListener);
    descriptor: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String nm
        start local 2 // java.lang.String filterExpr
        start local 3 // java.lang.Object[] filterArgs
        start local 4 // javax.naming.directory.SearchControls ctls
        start local 5 // javax.naming.event.NamingListener l
         0: .line 3394
            aload 2 /* filterExpr */
            aload 3 /* filterArgs */
            invokestatic com.sun.jndi.toolkit.dir.SearchFilter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 6 /* strfilter */
        start local 6 // java.lang.String strfilter
         1: .line 3395
            aload 0 /* this */
            new javax.naming.CompositeName
            dup
            aload 1 /* nm */
            invokespecial javax.naming.CompositeName.<init>:(Ljava/lang/String;)V
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
            aload 6 /* strfilter */
            aload 4 /* ctls */
            aload 5 /* l */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addNamingListener:(Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
         2: .line 3396
            return
        end local 6 // java.lang.String strfilter
        end local 5 // javax.naming.event.NamingListener l
        end local 4 // javax.naming.directory.SearchControls ctls
        end local 3 // java.lang.Object[] filterArgs
        end local 2 // java.lang.String filterExpr
        end local 1 // java.lang.String nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1          nm  Ljava/lang/String;
            0    3     2  filterExpr  Ljava/lang/String;
            0    3     3  filterArgs  [Ljava/lang/Object;
            0    3     4        ctls  Ljavax/naming/directory/SearchControls;
            0    3     5           l  Ljavax/naming/event/NamingListener;
            1    3     6   strfilter  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
            Name  Flags
      nm          
      filterExpr  
      filterArgs  
      ctls        
      l           

  public boolean targetMustExist();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3399
            iconst_1
            ireturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;

  private static java.lang.String getTargetName(javax.naming.Name);
    descriptor: (Ljavax/naming/Name;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // javax.naming.Name nm
         0: .line 3411
            aload 0 /* nm */
            instanceof javax.naming.CompositeName
            ifeq 8
         1: .line 3412
            aload 0 /* nm */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            if_icmple 5
         2: .line 3413
            new javax.naming.InvalidNameException
            dup
         3: .line 3414
            new java.lang.StringBuilder
            dup
            ldc "Target cannot span multiple namespaces: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* nm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 3413
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 3415
      StackMap locals:
      StackMap stack:
            aload 0 /* nm */
            invokeinterface javax.naming.Name.size:()I
            ifne 7
         6: .line 3416
            ldc ""
            areturn
         7: .line 3418
      StackMap locals:
      StackMap stack:
            aload 0 /* nm */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            areturn
         8: .line 3422
      StackMap locals:
      StackMap stack:
            aload 0 /* nm */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 0 // javax.naming.Name nm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0    nm  Ljavax/naming/Name;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      nm    

  private void addUnsolicited();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3445
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         1: .line 3446
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            dup
            astore 1
            monitorenter
         2: .line 3447
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.addUnsolicited:(Lcom/sun/jndi/ldap/LdapCtx;)V
         3: .line 3448
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
         4: .line 3446
            aload 1
            monitorexit
         5: goto 8
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.EventSupport
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 3450
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/jndi/ldap/LdapCtx;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
    Exceptions:
      throws javax.naming.NamingException

  private void removeUnsolicited();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3470
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnonnull 2
         1: .line 3471
            return
         2: .line 3475
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            dup
            astore 1
            monitorenter
         3: .line 3476
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
            ifeq 5
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            ifnull 5
         4: .line 3477
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.removeUnsolicited:(Lcom/sun/jndi/ldap/LdapCtx;)V
         5: .line 3479
      StackMap locals: com.sun.jndi.ldap.EventSupport
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
         6: .line 3475
            aload 1
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 1
            monitorexit
         9: athrow
        10: .line 3481
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/jndi/ldap/LdapCtx;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any

  void fireUnsolicited(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.Object obj
         0: .line 3492
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            dup
            astore 2
            monitorenter
         1: .line 3493
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
            ifeq 5
         2: .line 3494
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            aload 1 /* obj */
            invokevirtual com.sun.jndi.ldap.EventSupport.fireUnsolicited:(Ljava/lang/Object;)V
         3: .line 3496
            aload 1 /* obj */
            instanceof javax.naming.NamingException
            ifeq 5
         4: .line 3497
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
         5: .line 3492
      StackMap locals: com.sun.jndi.ldap.EventSupport
      StackMap stack:
            aload 2
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 3504
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object obj
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0   10     1   obj  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    MethodParameters:
      Name  Flags
      obj   
}
SourceFile: "LdapCtx.java"
NestMembers:
  com.sun.jndi.ldap.LdapCtx$SearchArgs
InnerClasses:
  final SearchArgs = com.sun.jndi.ldap.LdapCtx$SearchArgs of com.sun.jndi.ldap.LdapCtx