public class com.sun.jndi.dns.DnsClient
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.jndi.dns.DnsClient
  super_class: java.lang.Object
{
  private static final int IDENT_OFFSET;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  private static final java.security.SecureRandom random;
    descriptor: Ljava/security/SecureRandom;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private java.net.InetAddress[] servers;
    descriptor: [Ljava/net/InetAddress;
    flags: (0x0002) ACC_PRIVATE

  private int[] serverPorts;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

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

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

  private final java.lang.Object udpSocketLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final com.sun.jndi.dns.DNSDatagramSocketFactory factory;
    descriptor: Lcom/sun/jndi/dns/DNSDatagramSocketFactory;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private java.util.Map<java.lang.Integer, com.sun.jndi.dns.ResourceRecord> reqs;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/Integer;Lcom/sun/jndi/dns/ResourceRecord;>;

  private java.util.Map<java.lang.Integer, byte[]> resps;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/Integer;[B>;

  private java.lang.Object queuesLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private static boolean debug;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 71
            bipush 6
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 72
            ldc "No error"
            aastore
            dup
            iconst_1
         2: .line 73
            ldc "DNS format error"
            aastore
            dup
            iconst_2
         3: .line 74
            ldc "DNS server failure"
            aastore
            dup
            iconst_3
         4: .line 75
            ldc "DNS name not found"
            aastore
            dup
            iconst_4
         5: .line 76
            ldc "DNS operation not supported"
            aastore
            dup
            iconst_5
         6: .line 77
            ldc "DNS service refused"
            aastore
         7: .line 71
            putstatic com.sun.jndi.dns.DnsClient.rcodeDescription:[Ljava/lang/String;
         8: .line 82
            invokestatic sun.security.jca.JCAUtil.getSecureRandom:()Ljava/security/SecureRandom;
            putstatic com.sun.jndi.dns.DnsClient.random:Ljava/security/SecureRandom;
         9: .line 90
            new com.sun.jndi.dns.DNSDatagramSocketFactory
            dup
            getstatic com.sun.jndi.dns.DnsClient.random:Ljava/security/SecureRandom;
            invokespecial com.sun.jndi.dns.DNSDatagramSocketFactory.<init>:(Ljava/util/Random;)V
        10: .line 89
            putstatic com.sun.jndi.dns.DnsClient.factory:Lcom/sun/jndi/dns/DNSDatagramSocketFactory;
        11: .line 678
            iconst_0
            putstatic com.sun.jndi.dns.DnsClient.debug:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String[], int, int);
    descriptor: ([Ljava/lang/String;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // com.sun.jndi.dns.DnsClient this
        start local 1 // java.lang.String[] servers
        start local 2 // int timeout
        start local 3 // int retries
         0: .line 106
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 88
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield com.sun.jndi.dns.DnsClient.udpSocketLock:Ljava/lang/Object;
         2: .line 154
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield com.sun.jndi.dns.DnsClient.queuesLock:Ljava/lang/Object;
         3: .line 108
            aload 0 /* this */
            iload 2 /* timeout */
            putfield com.sun.jndi.dns.DnsClient.timeout:I
         4: .line 109
            aload 0 /* this */
            iload 3 /* retries */
            putfield com.sun.jndi.dns.DnsClient.retries:I
         5: .line 110
            aload 0 /* this */
            aload 1 /* servers */
            arraylength
            anewarray java.net.InetAddress
            putfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
         6: .line 111
            aload 0 /* this */
            aload 1 /* servers */
            arraylength
            newarray 10
            putfield com.sun.jndi.dns.DnsClient.serverPorts:[I
         7: .line 113
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         8: goto 29
         9: .line 116
      StackMap locals: com.sun.jndi.dns.DnsClient java.lang.String[] int int int
      StackMap stack:
            aload 1 /* servers */
            iload 4 /* i */
            aaload
            bipush 58
        10: .line 117
            aload 1 /* servers */
            iload 4 /* i */
            aaload
            bipush 93
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_1
            iadd
        11: .line 116
            invokevirtual java.lang.String.indexOf:(II)I
            istore 5 /* colon */
        start local 5 // int colon
        12: .line 119
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.serverPorts:[I
            iload 4 /* i */
            iload 5 /* colon */
            ifge 14
        13: .line 120
            bipush 53
            goto 15
        14: .line 121
      StackMap locals: com.sun.jndi.dns.DnsClient java.lang.String[] int int int int
      StackMap stack: int[] int
            aload 1 /* servers */
            iload 4 /* i */
            aaload
            iload 5 /* colon */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
        15: .line 119
      StackMap locals: com.sun.jndi.dns.DnsClient java.lang.String[] int int int int
      StackMap stack: int[] int int
            iastore
        16: .line 122
            iload 5 /* colon */
            ifge 18
        17: .line 123
            aload 1 /* servers */
            iload 4 /* i */
            aaload
            goto 19
        18: .line 124
      StackMap locals:
      StackMap stack:
            aload 1 /* servers */
            iload 4 /* i */
            aaload
            iconst_0
            iload 5 /* colon */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
        19: .line 122
      StackMap locals:
      StackMap stack: java.lang.String
            astore 6 /* server */
        start local 6 // java.lang.String server
        20: .line 126
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
            iload 4 /* i */
            aload 6 /* server */
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            aastore
        21: .line 127
            goto 28
      StackMap locals: com.sun.jndi.dns.DnsClient java.lang.String[] int int int int java.lang.String
      StackMap stack: java.net.UnknownHostException
        22: astore 7 /* e */
        start local 7 // java.net.UnknownHostException e
        23: .line 128
            new javax.naming.ConfigurationException
            dup
        24: .line 129
            new java.lang.StringBuilder
            dup
            ldc "Unknown DNS server: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* server */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        25: .line 128
            invokespecial javax.naming.ConfigurationException.<init>:(Ljava/lang/String;)V
            astore 8 /* ne */
        start local 8 // javax.naming.NamingException ne
        26: .line 130
            aload 8 /* ne */
            aload 7 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        27: .line 131
            aload 8 /* ne */
            athrow
        end local 8 // javax.naming.NamingException ne
        end local 7 // java.net.UnknownHostException e
        end local 6 // java.lang.String server
        end local 5 // int colon
        28: .line 113
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 4 /* i */
            aload 1 /* servers */
            arraylength
            if_icmplt 9
        end local 4 // int i
        30: .line 134
            aload 0 /* this */
        31: .line 135
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
        32: .line 134
            invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
        33: .line 136
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
        34: .line 137
            return
        end local 3 // int retries
        end local 2 // int timeout
        end local 1 // java.lang.String[] servers
        end local 0 // com.sun.jndi.dns.DnsClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   35     0     this  Lcom/sun/jndi/dns/DnsClient;
            0   35     1  servers  [Ljava/lang/String;
            0   35     2  timeout  I
            0   35     3  retries  I
            8   30     4        i  I
           12   28     5    colon  I
           20   28     6   server  Ljava/lang/String;
           23   28     7        e  Ljava/net/UnknownHostException;
           26   28     8       ne  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
          20    21      22  Class java.net.UnknownHostException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      servers  
      timeout  
      retries  

  java.net.DatagramSocket getDatagramSocket();
    descriptor: ()Ljava/net/DatagramSocket;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.sun.jndi.dns.DnsClient this
         0: .line 141
            getstatic com.sun.jndi.dns.DnsClient.factory:Lcom/sun/jndi/dns/DNSDatagramSocketFactory;
            invokevirtual com.sun.jndi.dns.DNSDatagramSocketFactory.open:()Ljava/net/DatagramSocket;
         1: areturn
         2: .line 142
      StackMap locals:
      StackMap stack: java.net.SocketException
            astore 1 /* e */
        start local 1 // java.net.SocketException e
         3: .line 143
            new javax.naming.ConfigurationException
            dup
            invokespecial javax.naming.ConfigurationException.<init>:()V
            astore 2 /* ne */
        start local 2 // javax.naming.NamingException ne
         4: .line 144
            aload 2 /* ne */
            aload 1 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
         5: .line 145
            aload 2 /* ne */
            athrow
        end local 2 // javax.naming.NamingException ne
        end local 1 // java.net.SocketException e
        end local 0 // com.sun.jndi.dns.DnsClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/jndi/dns/DnsClient;
            3    6     1     e  Ljava/net/SocketException;
            4    6     2    ne  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.net.SocketException
    Exceptions:
      throws javax.naming.NamingException

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.dns.DnsClient this
         0: .line 150
            aload 0 /* this */
            invokevirtual com.sun.jndi.dns.DnsClient.close:()V
         1: .line 151
            return
        end local 0 // com.sun.jndi.dns.DnsClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/dns/DnsClient;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.jndi.dns.DnsClient this
         0: .line 157
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.queuesLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 158
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         2: .line 159
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         3: .line 157
            aload 1
            monitorexit
         4: goto 7
      StackMap locals: com.sun.jndi.dns.DnsClient java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 1
            monitorexit
         6: athrow
         7: .line 161
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.dns.DnsClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/jndi/dns/DnsClient;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  com.sun.jndi.dns.ResourceRecords query(com.sun.jndi.dns.DnsName, int, int, boolean, boolean);
    descriptor: (Lcom/sun/jndi/dns/DnsName;IIZZ)Lcom/sun/jndi/dns/ResourceRecords;
    flags: (0x0000) 
    Code:
      stack=9, locals=22, args_size=6
        start local 0 // com.sun.jndi.dns.DnsClient this
        start local 1 // com.sun.jndi.dns.DnsName fqdn
        start local 2 // int qclass
        start local 3 // int qtype
        start local 4 // boolean recursion
        start local 5 // boolean auth
         0: .line 178
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jndi.dns.DnsClient.random:Ljava/security/SecureRandom;
            ldc 65536
            invokevirtual java.security.SecureRandom.nextInt:(I)I
            istore 6 /* xid */
        start local 6 // int xid
         1: .line 179
            aload 0 /* this */
            aload 1 /* fqdn */
            iload 6 /* xid */
            iload 2 /* qclass */
            iload 3 /* qtype */
            iload 4 /* recursion */
            invokevirtual com.sun.jndi.dns.DnsClient.makeQueryPacket:(Lcom/sun/jndi/dns/DnsName;IIIZ)Lcom/sun/jndi/dns/Packet;
            astore 7 /* pkt */
        start local 7 // com.sun.jndi.dns.Packet pkt
         2: .line 182
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
            dup
            astore 9
            monitorenter
         3: .line 183
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
            iload 6 /* xid */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new com.sun.jndi.dns.ResourceRecord
            dup
            aload 7 /* pkt */
            invokevirtual com.sun.jndi.dns.Packet.getData:()[B
         4: .line 184
            aload 7 /* pkt */
            invokevirtual com.sun.jndi.dns.Packet.length:()I
            bipush 12
            iconst_1
            iconst_0
            invokespecial com.sun.jndi.dns.ResourceRecord.<init>:([BIIZZ)V
         5: .line 183
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.jndi.dns.ResourceRecord
            dup
            astore 8 /* collision */
        start local 8 // com.sun.jndi.dns.ResourceRecord collision
         6: ifnull 8
         7: .line 185
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
            iload 6 /* xid */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 8 /* collision */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 182
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet com.sun.jndi.dns.ResourceRecord java.util.Map
      StackMap stack:
            aload 9
            monitorexit
         9: goto 12
        end local 8 // com.sun.jndi.dns.ResourceRecord collision
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet top java.util.Map
      StackMap stack: java.lang.Throwable
        10: aload 9
            monitorexit
        11: athrow
        start local 8 // com.sun.jndi.dns.ResourceRecord collision
        12: .line 188
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet com.sun.jndi.dns.ResourceRecord
      StackMap stack:
            aload 8 /* collision */
            ifnonnull 0
        13: .line 190
            aconst_null
            astore 9 /* caughtException */
        start local 9 // java.lang.Exception caughtException
        14: .line 191
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
            arraylength
            newarray 4
            astore 10 /* doNotRetry */
        start local 10 // boolean[] doNotRetry
        15: .line 199
            iconst_0
            istore 11 /* retry */
        start local 11 // int retry
        16: goto 95
        17: .line 202
      StackMap locals: java.lang.Exception boolean[] int
      StackMap stack:
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        18: goto 93
        19: .line 203
      StackMap locals: int
      StackMap stack:
            aload 10 /* doNotRetry */
            iload 12 /* i */
            baload
            ifeq 21
        20: .line 204
            goto 92
        21: .line 209
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jndi.dns.DnsClient.debug:Z
            ifeq 23
        22: .line 210
            new java.lang.StringBuilder
            dup
            ldc "SEND ID ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* retry */
            iconst_1
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "): "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* xid */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.jndi.dns.DnsClient.dprint:(Ljava/lang/String;)V
        23: .line 213
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 13 /* msg */
        start local 13 // byte[] msg
        24: .line 214
            aload 0 /* this */
            aload 7 /* pkt */
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
            iload 12 /* i */
            aaload
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.serverPorts:[I
            iload 12 /* i */
            iaload
        25: .line 215
            iload 11 /* retry */
            iload 6 /* xid */
        26: .line 214
            invokevirtual com.sun.jndi.dns.DnsClient.doUdpQuery:(Lcom/sun/jndi/dns/Packet;Ljava/net/InetAddress;III)[B
            astore 13 /* msg */
        27: .line 222
            aload 13 /* msg */
            ifnonnull 32
        28: .line 223
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            ifle 30
        29: .line 224
            aload 0 /* this */
            iload 6 /* xid */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.sun.jndi.dns.DnsClient.lookupResponse:(Ljava/lang/Integer;)[B
            astore 13 /* msg */
        30: .line 226
      StackMap locals: byte[]
      StackMap stack:
            aload 13 /* msg */
            ifnonnull 32
        31: .line 227
            goto 92
        32: .line 230
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.dns.Header
            dup
            aload 13 /* msg */
            aload 13 /* msg */
            arraylength
            invokespecial com.sun.jndi.dns.Header.<init>:([BI)V
            astore 14 /* hdr */
        start local 14 // com.sun.jndi.dns.Header hdr
        33: .line 232
            iload 5 /* auth */
            ifeq 39
            aload 14 /* hdr */
            getfield com.sun.jndi.dns.Header.authoritative:Z
            ifne 39
        34: .line 233
            new javax.naming.NameNotFoundException
            dup
        35: .line 234
            ldc "DNS response not authoritative"
        36: .line 233
            invokespecial javax.naming.NameNotFoundException.<init>:(Ljava/lang/String;)V
            astore 9 /* caughtException */
        37: .line 235
            aload 10 /* doNotRetry */
            iload 12 /* i */
            iconst_1
            bastore
        38: .line 236
            goto 92
        39: .line 238
      StackMap locals: com.sun.jndi.dns.Header
      StackMap stack:
            aload 14 /* hdr */
            getfield com.sun.jndi.dns.Header.truncated:Z
            ifeq 68
        40: .line 242
            iconst_0
            istore 15 /* j */
        start local 15 // int j
        41: goto 67
        42: .line 243
      StackMap locals: int
      StackMap stack:
            iload 12 /* i */
            iload 15 /* j */
            iadd
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
            arraylength
            irem
            istore 16 /* ij */
        start local 16 // int ij
        43: .line 244
            aload 10 /* doNotRetry */
            iload 16 /* ij */
            baload
            ifeq 45
        44: .line 245
            goto 66
        45: .line 249
      StackMap locals: int
      StackMap stack:
            new com.sun.jndi.dns.Tcp
            dup
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
            iload 16 /* ij */
            aaload
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.serverPorts:[I
            iload 16 /* ij */
            iaload
            invokespecial com.sun.jndi.dns.Tcp.<init>:(Ljava/net/InetAddress;I)V
        46: .line 248
            astore 17 /* tcp */
        start local 17 // com.sun.jndi.dns.Tcp tcp
        47: .line 252
            aload 0 /* this */
            aload 17 /* tcp */
            aload 7 /* pkt */
            invokevirtual com.sun.jndi.dns.DnsClient.doTcpQuery:(Lcom/sun/jndi/dns/Tcp;Lcom/sun/jndi/dns/Packet;)[B
            astore 18 /* msg2 */
        start local 18 // byte[] msg2
        48: .line 253
            goto 52
        end local 18 // byte[] msg2
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet com.sun.jndi.dns.ResourceRecord java.lang.Exception boolean[] int int byte[] com.sun.jndi.dns.Header int int com.sun.jndi.dns.Tcp
      StackMap stack: java.lang.Throwable
        49: astore 19
        50: .line 254
            aload 17 /* tcp */
            invokevirtual com.sun.jndi.dns.Tcp.close:()V
        51: .line 255
            aload 19
            athrow
        start local 18 // byte[] msg2
        52: .line 254
      StackMap locals: byte[]
      StackMap stack:
            aload 17 /* tcp */
            invokevirtual com.sun.jndi.dns.Tcp.close:()V
        53: .line 256
            new com.sun.jndi.dns.Header
            dup
            aload 18 /* msg2 */
            aload 18 /* msg2 */
            arraylength
            invokespecial com.sun.jndi.dns.Header.<init>:([BI)V
            astore 19 /* hdr2 */
        start local 19 // com.sun.jndi.dns.Header hdr2
        54: .line 257
            aload 19 /* hdr2 */
            getfield com.sun.jndi.dns.Header.query:Z
            ifeq 58
        55: .line 258
            new javax.naming.CommunicationException
            dup
        56: .line 259
            ldc "DNS error: expecting response"
        57: .line 258
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            athrow
        58: .line 261
      StackMap locals: com.sun.jndi.dns.Header
      StackMap stack:
            aload 0 /* this */
            aload 19 /* hdr2 */
            invokevirtual com.sun.jndi.dns.DnsClient.checkResponseCode:(Lcom/sun/jndi/dns/Header;)V
        59: .line 263
            iload 5 /* auth */
            ifeq 60
            aload 19 /* hdr2 */
            getfield com.sun.jndi.dns.Header.authoritative:Z
            ifeq 63
        60: .line 265
      StackMap locals:
      StackMap stack:
            aload 19 /* hdr2 */
            astore 14 /* hdr */
        61: .line 266
            aload 18 /* msg2 */
            astore 13 /* msg */
        62: .line 267
            goto 68
        63: .line 269
      StackMap locals:
      StackMap stack:
            aload 10 /* doNotRetry */
            iload 16 /* ij */
            iconst_1
            bastore
        end local 19 // com.sun.jndi.dns.Header hdr2
        end local 18 // byte[] msg2
        end local 17 // com.sun.jndi.dns.Tcp tcp
        64: .line 271
            goto 66
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet com.sun.jndi.dns.ResourceRecord java.lang.Exception boolean[] int int byte[] com.sun.jndi.dns.Header int int
      StackMap stack: java.lang.Exception
        65: pop
        end local 16 // int ij
        66: .line 242
      StackMap locals:
      StackMap stack:
            iinc 15 /* j */ 1
      StackMap locals:
      StackMap stack:
        67: iload 15 /* j */
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
            arraylength
            if_icmplt 42
        end local 15 // int j
        68: .line 276
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.dns.ResourceRecords
            dup
            aload 13 /* msg */
            aload 13 /* msg */
            arraylength
            aload 14 /* hdr */
            iconst_0
            invokespecial com.sun.jndi.dns.ResourceRecords.<init>:([BILcom/sun/jndi/dns/Header;Z)V
            astore 21
        69: .line 308
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
            iload 6 /* xid */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        70: .line 276
            aload 21
            areturn
        end local 14 // com.sun.jndi.dns.Header hdr
        end local 13 // byte[] msg
        71: .line 278
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet com.sun.jndi.dns.ResourceRecord java.lang.Exception boolean[] int int
      StackMap stack: java.io.IOException
            astore 13 /* e */
        start local 13 // java.io.IOException e
        72: .line 279
            getstatic com.sun.jndi.dns.DnsClient.debug:Z
            ifeq 74
        73: .line 280
            new java.lang.StringBuilder
            dup
            ldc "Caught IOException:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.jndi.dns.DnsClient.dprint:(Ljava/lang/String;)V
        74: .line 282
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 9 /* caughtException */
            ifnonnull 76
        75: .line 283
            aload 13 /* e */
            astore 9 /* caughtException */
        76: .line 287
      StackMap locals:
      StackMap stack:
            aload 13 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        77: .line 288
            ldc "java.net.PortUnreachableException"
        78: .line 287
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
        79: .line 288
            ifeq 92
        80: .line 289
            aload 10 /* doNotRetry */
            iload 12 /* i */
            iconst_1
            bastore
        end local 13 // java.io.IOException e
        81: goto 92
        82: .line 291
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet com.sun.jndi.dns.ResourceRecord java.lang.Exception boolean[] int int
      StackMap stack: javax.naming.NameNotFoundException
            astore 13 /* e */
        start local 13 // javax.naming.NameNotFoundException e
        83: .line 293
            aload 13 /* e */
            athrow
        end local 13 // javax.naming.NameNotFoundException e
        84: .line 294
      StackMap locals:
      StackMap stack: javax.naming.CommunicationException
            astore 13 /* e */
        start local 13 // javax.naming.CommunicationException e
        85: .line 295
            aload 9 /* caughtException */
            ifnonnull 92
        86: .line 296
            aload 13 /* e */
            astore 9 /* caughtException */
        end local 13 // javax.naming.CommunicationException e
        87: goto 92
        88: .line 298
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 13 /* e */
        start local 13 // javax.naming.NamingException e
        89: .line 299
            aload 9 /* caughtException */
            ifnonnull 91
        90: .line 300
            aload 13 /* e */
            astore 9 /* caughtException */
        91: .line 302
      StackMap locals: javax.naming.NamingException
      StackMap stack:
            aload 10 /* doNotRetry */
            iload 12 /* i */
            iconst_1
            bastore
        end local 13 // javax.naming.NamingException e
        92: .line 202
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        93: iload 12 /* i */
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
            arraylength
            if_icmplt 19
        end local 12 // int i
        94: .line 199
            iinc 11 /* retry */ 1
      StackMap locals:
      StackMap stack:
        95: iload 11 /* retry */
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.retries:I
            if_icmplt 17
        end local 11 // int retry
        96: .line 307
            goto 100
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet com.sun.jndi.dns.ResourceRecord java.lang.Exception boolean[]
      StackMap stack: java.lang.Throwable
        97: astore 20
        98: .line 308
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
            iload 6 /* xid */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        99: .line 309
            aload 20
            athrow
       100: .line 308
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
            iload 6 /* xid */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
       101: .line 311
            aload 9 /* caughtException */
            instanceof javax.naming.NamingException
            ifeq 103
       102: .line 312
            aload 9 /* caughtException */
            checkcast javax.naming.NamingException
            athrow
       103: .line 315
      StackMap locals:
      StackMap stack:
            new javax.naming.CommunicationException
            dup
            ldc "DNS error"
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 11 /* ne */
        start local 11 // javax.naming.NamingException ne
       104: .line 316
            aload 11 /* ne */
            aload 9 /* caughtException */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
       105: .line 317
            aload 11 /* ne */
            athrow
        end local 11 // javax.naming.NamingException ne
        end local 10 // boolean[] doNotRetry
        end local 9 // java.lang.Exception caughtException
        end local 8 // com.sun.jndi.dns.ResourceRecord collision
        end local 7 // com.sun.jndi.dns.Packet pkt
        end local 6 // int xid
        end local 5 // boolean auth
        end local 4 // boolean recursion
        end local 3 // int qtype
        end local 2 // int qclass
        end local 1 // com.sun.jndi.dns.DnsName fqdn
        end local 0 // com.sun.jndi.dns.DnsClient this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0  106     0             this  Lcom/sun/jndi/dns/DnsClient;
            0  106     1             fqdn  Lcom/sun/jndi/dns/DnsName;
            0  106     2           qclass  I
            0  106     3            qtype  I
            0  106     4        recursion  Z
            0  106     5             auth  Z
            1  106     6              xid  I
            2  106     7              pkt  Lcom/sun/jndi/dns/Packet;
            6   10     8        collision  Lcom/sun/jndi/dns/ResourceRecord;
           12  106     8        collision  Lcom/sun/jndi/dns/ResourceRecord;
           14  106     9  caughtException  Ljava/lang/Exception;
           15  106    10       doNotRetry  [Z
           16   96    11            retry  I
           18   94    12                i  I
           24   71    13              msg  [B
           33   71    14              hdr  Lcom/sun/jndi/dns/Header;
           41   68    15                j  I
           43   66    16               ij  I
           47   64    17              tcp  Lcom/sun/jndi/dns/Tcp;
           48   49    18             msg2  [B
           52   64    18             msg2  [B
           54   64    19             hdr2  Lcom/sun/jndi/dns/Header;
           72   81    13                e  Ljava/io/IOException;
           83   84    13                e  Ljavax/naming/NameNotFoundException;
           85   87    13                e  Ljavax/naming/CommunicationException;
           89   92    13                e  Ljavax/naming/NamingException;
          104  106    11               ne  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           3     9      10  any
          10    11      10  any
          47    49      49  any
          45    62      65  Class java.lang.Exception
          63    64      65  Class java.lang.Exception
          21    31      71  Class java.io.IOException
          32    38      71  Class java.io.IOException
          39    69      71  Class java.io.IOException
          21    31      82  Class javax.naming.NameNotFoundException
          32    38      82  Class javax.naming.NameNotFoundException
          39    69      82  Class javax.naming.NameNotFoundException
          21    31      84  Class javax.naming.CommunicationException
          32    38      84  Class javax.naming.CommunicationException
          39    69      84  Class javax.naming.CommunicationException
          21    31      88  Class javax.naming.NamingException
          32    38      88  Class javax.naming.NamingException
          39    69      88  Class javax.naming.NamingException
          15    69      97  any
          71    97      97  any
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
           Name  Flags
      fqdn       
      qclass     
      qtype      
      recursion  
      auth       

  com.sun.jndi.dns.ResourceRecords queryZone(com.sun.jndi.dns.DnsName, int, boolean);
    descriptor: (Lcom/sun/jndi/dns/DnsName;IZ)Lcom/sun/jndi/dns/ResourceRecords;
    flags: (0x0000) 
    Code:
      stack=6, locals=14, args_size=4
        start local 0 // com.sun.jndi.dns.DnsClient this
        start local 1 // com.sun.jndi.dns.DnsName zone
        start local 2 // int qclass
        start local 3 // boolean recursion
         0: .line 323
            getstatic com.sun.jndi.dns.DnsClient.random:Ljava/security/SecureRandom;
            ldc 65536
            invokevirtual java.security.SecureRandom.nextInt:(I)I
            istore 4 /* xid */
        start local 4 // int xid
         1: .line 325
            aload 0 /* this */
            aload 1 /* zone */
            iload 4 /* xid */
            iload 2 /* qclass */
         2: .line 326
            sipush 252
            iload 3 /* recursion */
         3: .line 325
            invokevirtual com.sun.jndi.dns.DnsClient.makeQueryPacket:(Lcom/sun/jndi/dns/DnsName;IIIZ)Lcom/sun/jndi/dns/Packet;
            astore 5 /* pkt */
        start local 5 // com.sun.jndi.dns.Packet pkt
         4: .line 327
            aconst_null
            astore 6 /* caughtException */
        start local 6 // java.lang.Exception caughtException
         5: .line 330
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 45
         7: .line 332
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int com.sun.jndi.dns.Packet java.lang.Exception int
      StackMap stack:
            new com.sun.jndi.dns.Tcp
            dup
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
            iload 7 /* i */
            aaload
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.serverPorts:[I
            iload 7 /* i */
            iaload
            invokespecial com.sun.jndi.dns.Tcp.<init>:(Ljava/net/InetAddress;I)V
            astore 8 /* tcp */
        start local 8 // com.sun.jndi.dns.Tcp tcp
         8: .line 335
            aload 0 /* this */
            aload 8 /* tcp */
            aload 5 /* pkt */
            invokevirtual com.sun.jndi.dns.DnsClient.doTcpQuery:(Lcom/sun/jndi/dns/Tcp;Lcom/sun/jndi/dns/Packet;)[B
            astore 9 /* msg */
        start local 9 // byte[] msg
         9: .line 336
            new com.sun.jndi.dns.Header
            dup
            aload 9 /* msg */
            aload 9 /* msg */
            arraylength
            invokespecial com.sun.jndi.dns.Header.<init>:([BI)V
            astore 10 /* hdr */
        start local 10 // com.sun.jndi.dns.Header hdr
        10: .line 339
            aload 0 /* this */
            aload 10 /* hdr */
            invokevirtual com.sun.jndi.dns.DnsClient.checkResponseCode:(Lcom/sun/jndi/dns/Header;)V
        11: .line 341
            new com.sun.jndi.dns.ResourceRecords
            dup
            aload 9 /* msg */
            aload 9 /* msg */
            arraylength
            aload 10 /* hdr */
            iconst_1
            invokespecial com.sun.jndi.dns.ResourceRecords.<init>:([BILcom/sun/jndi/dns/Header;Z)V
        12: .line 340
            astore 11 /* rrs */
        start local 11 // com.sun.jndi.dns.ResourceRecords rrs
        13: .line 342
            aload 11 /* rrs */
            invokevirtual com.sun.jndi.dns.ResourceRecords.getFirstAnsType:()I
            bipush 6
            if_icmpeq 17
        14: .line 343
            new javax.naming.CommunicationException
            dup
        15: .line 344
            ldc "DNS error: zone xfer doesn't begin with SOA"
        16: .line 343
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 347
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int com.sun.jndi.dns.Packet java.lang.Exception int com.sun.jndi.dns.Tcp byte[] com.sun.jndi.dns.Header com.sun.jndi.dns.ResourceRecords
      StackMap stack:
            aload 11 /* rrs */
            getfield com.sun.jndi.dns.ResourceRecords.answer:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            iconst_1
            if_icmpeq 19
        18: .line 348
            aload 11 /* rrs */
            invokevirtual com.sun.jndi.dns.ResourceRecords.getLastAnsType:()I
            bipush 6
            if_icmpeq 30
        19: .line 351
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* tcp */
            invokevirtual com.sun.jndi.dns.DnsClient.continueTcpQuery:(Lcom/sun/jndi/dns/Tcp;)[B
            astore 9 /* msg */
        20: .line 352
            aload 9 /* msg */
            ifnonnull 24
        21: .line 353
            new javax.naming.CommunicationException
            dup
        22: .line 354
            ldc "DNS error: incomplete zone transfer"
        23: .line 353
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 356
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.dns.Header
            dup
            aload 9 /* msg */
            aload 9 /* msg */
            arraylength
            invokespecial com.sun.jndi.dns.Header.<init>:([BI)V
            astore 10 /* hdr */
        25: .line 357
            aload 0 /* this */
            aload 10 /* hdr */
            invokevirtual com.sun.jndi.dns.DnsClient.checkResponseCode:(Lcom/sun/jndi/dns/Header;)V
        26: .line 358
            aload 11 /* rrs */
            aload 9 /* msg */
            aload 9 /* msg */
            arraylength
            aload 10 /* hdr */
            invokevirtual com.sun.jndi.dns.ResourceRecords.add:([BILcom/sun/jndi/dns/Header;)V
        27: .line 359
            aload 11 /* rrs */
            invokevirtual com.sun.jndi.dns.ResourceRecords.getLastAnsType:()I
        28: .line 360
            bipush 6
        29: .line 359
            if_icmpne 19
        30: .line 364
      StackMap locals:
      StackMap stack:
            aload 11 /* rrs */
            getfield com.sun.jndi.dns.ResourceRecords.answer:Ljava/util/Vector;
            aload 11 /* rrs */
            getfield com.sun.jndi.dns.ResourceRecords.answer:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            iconst_1
            isub
            invokevirtual java.util.Vector.removeElementAt:(I)V
        31: .line 365
            aload 11 /* rrs */
            astore 13
        32: .line 368
            aload 8 /* tcp */
            invokevirtual com.sun.jndi.dns.Tcp.close:()V
        33: .line 365
            aload 13
            areturn
        end local 11 // com.sun.jndi.dns.ResourceRecords rrs
        end local 10 // com.sun.jndi.dns.Header hdr
        end local 9 // byte[] msg
        34: .line 367
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int com.sun.jndi.dns.Packet java.lang.Exception int com.sun.jndi.dns.Tcp
      StackMap stack: java.lang.Throwable
            astore 12
        35: .line 368
            aload 8 /* tcp */
            invokevirtual com.sun.jndi.dns.Tcp.close:()V
        36: .line 369
            aload 12
            athrow
        end local 8 // com.sun.jndi.dns.Tcp tcp
        37: .line 371
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int com.sun.jndi.dns.Packet java.lang.Exception int
      StackMap stack: java.io.IOException
            astore 8 /* e */
        start local 8 // java.io.IOException e
        38: .line 372
            aload 8 /* e */
            astore 6 /* caughtException */
        end local 8 // java.io.IOException e
        39: goto 44
        40: .line 373
      StackMap locals:
      StackMap stack: javax.naming.NameNotFoundException
            astore 8 /* e */
        start local 8 // javax.naming.NameNotFoundException e
        41: .line 374
            aload 8 /* e */
            athrow
        end local 8 // javax.naming.NameNotFoundException e
        42: .line 375
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
        43: .line 376
            aload 8 /* e */
            astore 6 /* caughtException */
        end local 8 // javax.naming.NamingException e
        44: .line 330
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        45: iload 7 /* i */
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
            arraylength
            if_icmplt 7
        end local 7 // int i
        46: .line 379
            aload 6 /* caughtException */
            instanceof javax.naming.NamingException
            ifeq 48
        47: .line 380
            aload 6 /* caughtException */
            checkcast javax.naming.NamingException
            athrow
        48: .line 382
      StackMap locals:
      StackMap stack:
            new javax.naming.CommunicationException
            dup
        49: .line 383
            ldc "DNS error during zone transfer"
        50: .line 382
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 7 /* ne */
        start local 7 // javax.naming.NamingException ne
        51: .line 384
            aload 7 /* ne */
            aload 6 /* caughtException */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        52: .line 385
            aload 7 /* ne */
            athrow
        end local 7 // javax.naming.NamingException ne
        end local 6 // java.lang.Exception caughtException
        end local 5 // com.sun.jndi.dns.Packet pkt
        end local 4 // int xid
        end local 3 // boolean recursion
        end local 2 // int qclass
        end local 1 // com.sun.jndi.dns.DnsName zone
        end local 0 // com.sun.jndi.dns.DnsClient this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   53     0             this  Lcom/sun/jndi/dns/DnsClient;
            0   53     1             zone  Lcom/sun/jndi/dns/DnsName;
            0   53     2           qclass  I
            0   53     3        recursion  Z
            1   53     4              xid  I
            4   53     5              pkt  Lcom/sun/jndi/dns/Packet;
            5   53     6  caughtException  Ljava/lang/Exception;
            6   46     7                i  I
            8   37     8              tcp  Lcom/sun/jndi/dns/Tcp;
            9   34     9              msg  [B
           10   34    10              hdr  Lcom/sun/jndi/dns/Header;
           13   34    11              rrs  Lcom/sun/jndi/dns/ResourceRecords;
           38   39     8                e  Ljava/io/IOException;
           41   42     8                e  Ljavax/naming/NameNotFoundException;
           43   44     8                e  Ljavax/naming/NamingException;
           51   53     7               ne  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           8    32      34  any
           7    33      37  Class java.io.IOException
          34    37      37  Class java.io.IOException
           7    33      40  Class javax.naming.NameNotFoundException
          34    37      40  Class javax.naming.NameNotFoundException
           7    33      42  Class javax.naming.NamingException
          34    37      42  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
           Name  Flags
      zone       
      qclass     
      recursion  

  private byte[] doUdpQuery(com.sun.jndi.dns.Packet, java.net.InetAddress, int, int, int);
    descriptor: (Lcom/sun/jndi/dns/Packet;Ljava/net/InetAddress;III)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=22, args_size=6
        start local 0 // com.sun.jndi.dns.DnsClient this
        start local 1 // com.sun.jndi.dns.Packet pkt
        start local 2 // java.net.InetAddress server
        start local 3 // int port
        start local 4 // int retry
        start local 5 // int xid
         0: .line 399
            bipush 50
            istore 6 /* minTimeout */
        start local 6 // int minTimeout
         1: .line 401
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.udpSocketLock:Ljava/lang/Object;
            dup
            astore 7
            monitorenter
         2: .line 402
            aload 0 /* this */
            invokevirtual com.sun.jndi.dns.DnsClient.getDatagramSocket:()Ljava/net/DatagramSocket;
            astore 8 /* udpSocket */
        start local 8 // java.net.DatagramSocket udpSocket
         3: .line 404
            new java.net.DatagramPacket
            dup
         4: .line 405
            aload 1 /* pkt */
            invokevirtual com.sun.jndi.dns.Packet.getData:()[B
            aload 1 /* pkt */
            invokevirtual com.sun.jndi.dns.Packet.length:()I
            aload 2 /* server */
            iload 3 /* port */
         5: .line 404
            invokespecial java.net.DatagramPacket.<init>:([BILjava/net/InetAddress;I)V
            astore 9 /* opkt */
        start local 9 // java.net.DatagramPacket opkt
         6: .line 406
            new java.net.DatagramPacket
            dup
            sipush 8000
            newarray 8
            sipush 8000
            invokespecial java.net.DatagramPacket.<init>:([BI)V
            astore 10 /* ipkt */
        start local 10 // java.net.DatagramPacket ipkt
         7: .line 408
            aload 8 /* udpSocket */
            aload 2 /* server */
            iload 3 /* port */
            invokevirtual java.net.DatagramSocket.connect:(Ljava/net/InetAddress;I)V
         8: .line 409
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.timeout:I
            iconst_1
            iload 4 /* retry */
            ishl
            imul
            istore 11 /* pktTimeout */
        start local 11 // int pktTimeout
         9: .line 411
            aload 8 /* udpSocket */
            aload 9 /* opkt */
            invokevirtual java.net.DatagramSocket.send:(Ljava/net/DatagramPacket;)V
        10: .line 414
            iload 11 /* pktTimeout */
            istore 12 /* timeoutLeft */
        start local 12 // int timeoutLeft
        11: .line 415
            iconst_0
            istore 13 /* cnt */
        start local 13 // int cnt
        12: .line 417
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.Packet java.net.InetAddress int int int int java.lang.Object java.net.DatagramSocket java.net.DatagramPacket java.net.DatagramPacket int int int
      StackMap stack:
            getstatic com.sun.jndi.dns.DnsClient.debug:Z
            ifeq 19
        13: .line 418
            iinc 13 /* cnt */ 1
        14: .line 419
            new java.lang.StringBuilder
            dup
            ldc "Trying RECEIVE("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 420
            iload 13 /* cnt */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") retry("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* retry */
            iconst_1
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        16: .line 421
            ldc ") for:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* xid */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "    sock-timeout:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 422
            iload 12 /* timeoutLeft */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " ms."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 419
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.jndi.dns.DnsClient.dprint:(Ljava/lang/String;)V
        19: .line 424
      StackMap locals:
      StackMap stack:
            aload 8 /* udpSocket */
            iload 12 /* timeoutLeft */
            invokevirtual java.net.DatagramSocket.setSoTimeout:(I)V
        20: .line 425
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 14 /* start */
        start local 14 // long start
        21: .line 426
            aload 8 /* udpSocket */
            aload 10 /* ipkt */
            invokevirtual java.net.DatagramSocket.receive:(Ljava/net/DatagramPacket;)V
        22: .line 427
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 16 /* end */
        start local 16 // long end
        23: .line 429
            aload 10 /* ipkt */
            invokevirtual java.net.DatagramPacket.getData:()[B
            astore 18 /* data */
        start local 18 // byte[] data
        24: .line 430
            aload 0 /* this */
            aload 18 /* data */
            iload 5 /* xid */
            invokevirtual com.sun.jndi.dns.DnsClient.isMatchResponse:([BI)Z
            ifeq 30
        25: .line 431
            aload 18 /* data */
            astore 20
        26: .line 437
            aload 8 /* udpSocket */
            invokevirtual java.net.DatagramSocket.disconnect:()V
        27: .line 441
            aload 8 /* udpSocket */
            invokevirtual java.net.DatagramSocket.close:()V
        28: .line 431
            aload 7
            monitorexit
        29: aload 20
            areturn
        30: .line 433
      StackMap locals: long long byte[]
      StackMap stack:
            iload 11 /* pktTimeout */
            lload 16 /* end */
            lload 14 /* start */
            lsub
            l2i
            isub
            istore 12 /* timeoutLeft */
        end local 18 // byte[] data
        end local 16 // long end
        end local 14 // long start
        31: .line 434
            iload 12 /* timeoutLeft */
            iload 6 /* minTimeout */
        32: .line 416
            if_icmpgt 12
        end local 13 // int cnt
        end local 12 // int timeoutLeft
        33: .line 436
            goto 37
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.Packet java.net.InetAddress int int int int java.lang.Object java.net.DatagramSocket java.net.DatagramPacket java.net.DatagramPacket int
      StackMap stack: java.lang.Throwable
        34: astore 19
        35: .line 437
            aload 8 /* udpSocket */
            invokevirtual java.net.DatagramSocket.disconnect:()V
        36: .line 438
            aload 19
            athrow
        37: .line 437
      StackMap locals:
      StackMap stack:
            aload 8 /* udpSocket */
            invokevirtual java.net.DatagramSocket.disconnect:()V
        38: .line 441
            aload 8 /* udpSocket */
            invokevirtual java.net.DatagramSocket.close:()V
            aload 7
            monitorexit
        39: .line 439
            aconst_null
            areturn
        end local 11 // int pktTimeout
        end local 10 // java.net.DatagramPacket ipkt
        end local 9 // java.net.DatagramPacket opkt
        40: .line 440
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.Packet java.net.InetAddress int int int int java.lang.Object java.net.DatagramSocket
      StackMap stack: java.lang.Throwable
            astore 21
        41: .line 441
            aload 8 /* udpSocket */
            invokevirtual java.net.DatagramSocket.close:()V
        42: .line 442
            aload 21
            athrow
        end local 8 // java.net.DatagramSocket udpSocket
        43: .line 401
      StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.Packet java.net.InetAddress int int int int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 7
            monitorexit
        44: athrow
        end local 6 // int minTimeout
        end local 5 // int xid
        end local 4 // int retry
        end local 3 // int port
        end local 2 // java.net.InetAddress server
        end local 1 // com.sun.jndi.dns.Packet pkt
        end local 0 // com.sun.jndi.dns.DnsClient this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   45     0         this  Lcom/sun/jndi/dns/DnsClient;
            0   45     1          pkt  Lcom/sun/jndi/dns/Packet;
            0   45     2       server  Ljava/net/InetAddress;
            0   45     3         port  I
            0   45     4        retry  I
            0   45     5          xid  I
            1   45     6   minTimeout  I
            3   43     8    udpSocket  Ljava/net/DatagramSocket;
            6   40     9         opkt  Ljava/net/DatagramPacket;
            7   40    10         ipkt  Ljava/net/DatagramPacket;
            9   40    11   pktTimeout  I
           11   33    12  timeoutLeft  I
           12   33    13          cnt  I
           21   31    14        start  J
           23   31    16          end  J
           24   31    18         data  [B
      Exception table:
        from    to  target  type
           9    26      34  any
          30    34      34  any
           3    27      40  any
          30    38      40  any
           2    29      43  any
          30    39      43  any
          40    44      43  any
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
        Name  Flags
      pkt     
      server  
      port    
      retry   
      xid     

  private byte[] doTcpQuery(com.sun.jndi.dns.Tcp, com.sun.jndi.dns.Packet);
    descriptor: (Lcom/sun/jndi/dns/Tcp;Lcom/sun/jndi/dns/Packet;)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.sun.jndi.dns.DnsClient this
        start local 1 // com.sun.jndi.dns.Tcp tcp
        start local 2 // com.sun.jndi.dns.Packet pkt
         0: .line 451
            aload 2 /* pkt */
            invokevirtual com.sun.jndi.dns.Packet.length:()I
            istore 3 /* len */
        start local 3 // int len
         1: .line 453
            aload 1 /* tcp */
            getfield com.sun.jndi.dns.Tcp.out:Ljava/io/OutputStream;
            iload 3 /* len */
            bipush 8
            ishr
            invokevirtual java.io.OutputStream.write:(I)V
         2: .line 454
            aload 1 /* tcp */
            getfield com.sun.jndi.dns.Tcp.out:Ljava/io/OutputStream;
            iload 3 /* len */
            invokevirtual java.io.OutputStream.write:(I)V
         3: .line 455
            aload 1 /* tcp */
            getfield com.sun.jndi.dns.Tcp.out:Ljava/io/OutputStream;
            aload 2 /* pkt */
            invokevirtual com.sun.jndi.dns.Packet.getData:()[B
            iconst_0
            iload 3 /* len */
            invokevirtual java.io.OutputStream.write:([BII)V
         4: .line 456
            aload 1 /* tcp */
            getfield com.sun.jndi.dns.Tcp.out:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.flush:()V
         5: .line 458
            aload 0 /* this */
            aload 1 /* tcp */
            invokevirtual com.sun.jndi.dns.DnsClient.continueTcpQuery:(Lcom/sun/jndi/dns/Tcp;)[B
            astore 4 /* msg */
        start local 4 // byte[] msg
         6: .line 459
            aload 4 /* msg */
            ifnonnull 8
         7: .line 460
            new java.io.IOException
            dup
            ldc "DNS error: no response"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 462
      StackMap locals: int byte[]
      StackMap stack:
            aload 4 /* msg */
            areturn
        end local 4 // byte[] msg
        end local 3 // int len
        end local 2 // com.sun.jndi.dns.Packet pkt
        end local 1 // com.sun.jndi.dns.Tcp tcp
        end local 0 // com.sun.jndi.dns.DnsClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/jndi/dns/DnsClient;
            0    9     1   tcp  Lcom/sun/jndi/dns/Tcp;
            0    9     2   pkt  Lcom/sun/jndi/dns/Packet;
            1    9     3   len  I
            6    9     4   msg  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      tcp   
      pkt   

  private byte[] continueTcpQuery(com.sun.jndi.dns.Tcp);
    descriptor: (Lcom/sun/jndi/dns/Tcp;)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // com.sun.jndi.dns.DnsClient this
        start local 1 // com.sun.jndi.dns.Tcp tcp
         0: .line 470
            aload 1 /* tcp */
            getfield com.sun.jndi.dns.Tcp.in:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            istore 2 /* lenHi */
        start local 2 // int lenHi
         1: .line 471
            iload 2 /* lenHi */
            iconst_m1
            if_icmpne 3
         2: .line 472
            aconst_null
            areturn
         3: .line 474
      StackMap locals: int
      StackMap stack:
            aload 1 /* tcp */
            getfield com.sun.jndi.dns.Tcp.in:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.read:()I
            istore 3 /* lenLo */
        start local 3 // int lenLo
         4: .line 475
            iload 3 /* lenLo */
            iconst_m1
            if_icmpne 6
         5: .line 476
            new java.io.IOException
            dup
            ldc "Corrupted DNS response: bad length"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 478
      StackMap locals: int
      StackMap stack:
            iload 2 /* lenHi */
            bipush 8
            ishl
            iload 3 /* lenLo */
            ior
            istore 4 /* len */
        start local 4 // int len
         7: .line 479
            iload 4 /* len */
            newarray 8
            astore 5 /* msg */
        start local 5 // byte[] msg
         8: .line 480
            iconst_0
            istore 6 /* pos */
        start local 6 // int pos
         9: .line 481
            goto 17
        10: .line 482
      StackMap locals: int byte[] int
      StackMap stack:
            aload 1 /* tcp */
            getfield com.sun.jndi.dns.Tcp.in:Ljava/io/InputStream;
            aload 5 /* msg */
            iload 6 /* pos */
            iload 4 /* len */
            invokevirtual java.io.InputStream.read:([BII)I
            istore 7 /* n */
        start local 7 // int n
        11: .line 483
            iload 7 /* n */
            iconst_m1
            if_icmpne 15
        12: .line 484
            new java.io.IOException
            dup
        13: .line 485
            ldc "Corrupted DNS response: too little data"
        14: .line 484
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 487
      StackMap locals: int
      StackMap stack:
            iload 4 /* len */
            iload 7 /* n */
            isub
            istore 4 /* len */
        16: .line 488
            iload 6 /* pos */
            iload 7 /* n */
            iadd
            istore 6 /* pos */
        end local 7 // int n
        17: .line 481
      StackMap locals:
      StackMap stack:
            iload 4 /* len */
            ifgt 10
        18: .line 490
            aload 5 /* msg */
            areturn
        end local 6 // int pos
        end local 5 // byte[] msg
        end local 4 // int len
        end local 3 // int lenLo
        end local 2 // int lenHi
        end local 1 // com.sun.jndi.dns.Tcp tcp
        end local 0 // com.sun.jndi.dns.DnsClient this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   19     0   this  Lcom/sun/jndi/dns/DnsClient;
            0   19     1    tcp  Lcom/sun/jndi/dns/Tcp;
            1   19     2  lenHi  I
            4   19     3  lenLo  I
            7   19     4    len  I
            8   19     5    msg  [B
            9   19     6    pos  I
           11   17     7      n  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      tcp   

  private com.sun.jndi.dns.Packet makeQueryPacket(com.sun.jndi.dns.DnsName, int, int, int, boolean);
    descriptor: (Lcom/sun/jndi/dns/DnsName;IIIZ)Lcom/sun/jndi/dns/Packet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=6
        start local 0 // com.sun.jndi.dns.DnsClient this
        start local 1 // com.sun.jndi.dns.DnsName fqdn
        start local 2 // int xid
        start local 3 // int qclass
        start local 4 // int qtype
        start local 5 // boolean recursion
         0: .line 495
            aload 1 /* fqdn */
            invokevirtual com.sun.jndi.dns.DnsName.getOctets:()S
            istore 6 /* qnameLen */
        start local 6 // int qnameLen
         1: .line 496
            bipush 12
            iload 6 /* qnameLen */
            iadd
            iconst_4
            iadd
            istore 7 /* pktLen */
        start local 7 // int pktLen
         2: .line 497
            new com.sun.jndi.dns.Packet
            dup
            iload 7 /* pktLen */
            invokespecial com.sun.jndi.dns.Packet.<init>:(I)V
            astore 8 /* pkt */
        start local 8 // com.sun.jndi.dns.Packet pkt
         3: .line 499
            iload 5 /* recursion */
            ifeq 4
            sipush 256
            goto 5
      StackMap locals: int int com.sun.jndi.dns.Packet
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 9 /* flags */
        start local 9 // short flags
         6: .line 501
            aload 8 /* pkt */
            iload 2 /* xid */
            iconst_0
            invokevirtual com.sun.jndi.dns.Packet.putShort:(II)V
         7: .line 502
            aload 8 /* pkt */
            iload 9 /* flags */
            iconst_2
            invokevirtual com.sun.jndi.dns.Packet.putShort:(II)V
         8: .line 503
            aload 8 /* pkt */
            iconst_1
            iconst_4
            invokevirtual com.sun.jndi.dns.Packet.putShort:(II)V
         9: .line 504
            aload 8 /* pkt */
            iconst_0
            bipush 6
            invokevirtual com.sun.jndi.dns.Packet.putShort:(II)V
        10: .line 505
            aload 8 /* pkt */
            iconst_0
            bipush 8
            invokevirtual com.sun.jndi.dns.Packet.putInt:(II)V
        11: .line 507
            aload 0 /* this */
            aload 1 /* fqdn */
            aload 8 /* pkt */
            bipush 12
            invokevirtual com.sun.jndi.dns.DnsClient.makeQueryName:(Lcom/sun/jndi/dns/DnsName;Lcom/sun/jndi/dns/Packet;I)V
        12: .line 508
            aload 8 /* pkt */
            iload 4 /* qtype */
            bipush 12
            iload 6 /* qnameLen */
            iadd
            invokevirtual com.sun.jndi.dns.Packet.putShort:(II)V
        13: .line 509
            aload 8 /* pkt */
            iload 3 /* qclass */
            bipush 12
            iload 6 /* qnameLen */
            iadd
            iconst_2
            iadd
            invokevirtual com.sun.jndi.dns.Packet.putShort:(II)V
        14: .line 511
            aload 8 /* pkt */
            areturn
        end local 9 // short flags
        end local 8 // com.sun.jndi.dns.Packet pkt
        end local 7 // int pktLen
        end local 6 // int qnameLen
        end local 5 // boolean recursion
        end local 4 // int qtype
        end local 3 // int qclass
        end local 2 // int xid
        end local 1 // com.sun.jndi.dns.DnsName fqdn
        end local 0 // com.sun.jndi.dns.DnsClient this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lcom/sun/jndi/dns/DnsClient;
            0   15     1       fqdn  Lcom/sun/jndi/dns/DnsName;
            0   15     2        xid  I
            0   15     3     qclass  I
            0   15     4      qtype  I
            0   15     5  recursion  Z
            1   15     6   qnameLen  I
            2   15     7     pktLen  I
            3   15     8        pkt  Lcom/sun/jndi/dns/Packet;
            6   15     9      flags  S
    MethodParameters:
           Name  Flags
      fqdn       
      xid        
      qclass     
      qtype      
      recursion  

  private void makeQueryName(com.sun.jndi.dns.DnsName, com.sun.jndi.dns.Packet, int);
    descriptor: (Lcom/sun/jndi/dns/DnsName;Lcom/sun/jndi/dns/Packet;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // com.sun.jndi.dns.DnsClient this
        start local 1 // com.sun.jndi.dns.DnsName fqdn
        start local 2 // com.sun.jndi.dns.Packet pkt
        start local 3 // int off
         0: .line 518
            aload 1 /* fqdn */
            invokevirtual com.sun.jndi.dns.DnsName.size:()I
            iconst_1
            isub
            istore 4 /* i */
        start local 4 // int i
         1: goto 11
         2: .line 519
      StackMap locals: int
      StackMap stack:
            aload 1 /* fqdn */
            iload 4 /* i */
            invokevirtual com.sun.jndi.dns.DnsName.get:(I)Ljava/lang/String;
            astore 5 /* label */
        start local 5 // java.lang.String label
         3: .line 520
            aload 5 /* label */
            invokevirtual java.lang.String.length:()I
            istore 6 /* len */
        start local 6 // int len
         4: .line 522
            aload 2 /* pkt */
            iload 6 /* len */
            iload 3 /* off */
            iinc 3 /* off */ 1
            invokevirtual com.sun.jndi.dns.Packet.putByte:(II)V
         5: .line 523
            iconst_0
            istore 7 /* j */
        start local 7 // int j
         6: goto 9
         7: .line 524
      StackMap locals: java.lang.String int int
      StackMap stack:
            aload 2 /* pkt */
            aload 5 /* label */
            iload 7 /* j */
            invokevirtual java.lang.String.charAt:(I)C
            iload 3 /* off */
            iinc 3 /* off */ 1
            invokevirtual com.sun.jndi.dns.Packet.putByte:(II)V
         8: .line 523
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
         9: iload 7 /* j */
            iload 6 /* len */
            if_icmplt 7
        end local 7 // int j
        end local 6 // int len
        end local 5 // java.lang.String label
        10: .line 518
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            ifge 2
        end local 4 // int i
        12: .line 527
            aload 1 /* fqdn */
            invokevirtual com.sun.jndi.dns.DnsName.hasRootLabel:()Z
            ifne 14
        13: .line 528
            aload 2 /* pkt */
            iconst_0
            iload 3 /* off */
            invokevirtual com.sun.jndi.dns.Packet.putByte:(II)V
        14: .line 530
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int off
        end local 2 // com.sun.jndi.dns.Packet pkt
        end local 1 // com.sun.jndi.dns.DnsName fqdn
        end local 0 // com.sun.jndi.dns.DnsClient this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Lcom/sun/jndi/dns/DnsClient;
            0   15     1   fqdn  Lcom/sun/jndi/dns/DnsName;
            0   15     2    pkt  Lcom/sun/jndi/dns/Packet;
            0   15     3    off  I
            1   12     4      i  I
            3   10     5  label  Ljava/lang/String;
            4   10     6    len  I
            6   10     7      j  I
    MethodParameters:
      Name  Flags
      fqdn  
      pkt   
      off   

  private byte[] lookupResponse(java.lang.Integer);
    descriptor: (Ljava/lang/Integer;)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.sun.jndi.dns.DnsClient this
        start local 1 // java.lang.Integer xid
         0: .line 539
            getstatic com.sun.jndi.dns.DnsClient.debug:Z
            ifeq 4
         1: .line 540
            new java.lang.StringBuilder
            dup
            ldc "LOOKUP for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* xid */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         2: .line 541
            ldc "\tResponse Q:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         3: .line 540
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.jndi.dns.DnsClient.dprint:(Ljava/lang/String;)V
         4: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
            aload 1 /* xid */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            dup
            astore 2 /* pkt */
        start local 2 // byte[] pkt
         5: ifnull 18
         6: .line 545
            aload 0 /* this */
            new com.sun.jndi.dns.Header
            dup
            aload 2 /* pkt */
            aload 2 /* pkt */
            arraylength
            invokespecial com.sun.jndi.dns.Header.<init>:([BI)V
            invokevirtual com.sun.jndi.dns.DnsClient.checkResponseCode:(Lcom/sun/jndi/dns/Header;)V
         7: .line 546
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.queuesLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         8: .line 547
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
            aload 1 /* xid */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 548
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
            aload 1 /* xid */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 546
            aload 3
            monitorexit
        11: goto 14
      StackMap locals: com.sun.jndi.dns.DnsClient java.lang.Integer byte[] java.lang.Object
      StackMap stack: java.lang.Throwable
        12: aload 3
            monitorexit
        13: athrow
        14: .line 551
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jndi.dns.DnsClient.debug:Z
            ifeq 18
        15: .line 552
            new java.lang.StringBuilder
            dup
            ldc "FOUND ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        16: .line 553
            ldc ") for:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* xid */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        17: .line 552
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.jndi.dns.DnsClient.dprint:(Ljava/lang/String;)V
        18: .line 556
      StackMap locals:
      StackMap stack:
            aload 2 /* pkt */
            areturn
        end local 2 // byte[] pkt
        end local 1 // java.lang.Integer xid
        end local 0 // com.sun.jndi.dns.DnsClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lcom/sun/jndi/dns/DnsClient;
            0   19     1   xid  Ljava/lang/Integer;
            5   19     2   pkt  [B
      Exception table:
        from    to  target  type
           8    11      12  any
          12    13      12  any
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      xid   

  private boolean isMatchResponse(byte[], int);
    descriptor: ([BI)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=3
        start local 0 // com.sun.jndi.dns.DnsClient this
        start local 1 // byte[] pkt
        start local 2 // int xid
         0: .line 570
            new com.sun.jndi.dns.Header
            dup
            aload 1 /* pkt */
            aload 1 /* pkt */
            arraylength
            invokespecial com.sun.jndi.dns.Header.<init>:([BI)V
            astore 3 /* hdr */
        start local 3 // com.sun.jndi.dns.Header hdr
         1: .line 571
            aload 3 /* hdr */
            getfield com.sun.jndi.dns.Header.query:Z
            ifeq 3
         2: .line 572
            new javax.naming.CommunicationException
            dup
            ldc "DNS error: expecting response"
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 575
      StackMap locals: com.sun.jndi.dns.Header
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
            iload 2 /* xid */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 576
            iconst_0
            ireturn
         5: .line 580
      StackMap locals:
      StackMap stack:
            aload 3 /* hdr */
            getfield com.sun.jndi.dns.Header.xid:I
            iload 2 /* xid */
            if_icmpne 39
         6: .line 581
            getstatic com.sun.jndi.dns.DnsClient.debug:Z
            ifeq 8
         7: .line 582
            new java.lang.StringBuilder
            dup
            ldc "XID MATCH:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* xid */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.jndi.dns.DnsClient.dprint:(Ljava/lang/String;)V
         8: .line 584
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* hdr */
            invokevirtual com.sun.jndi.dns.DnsClient.checkResponseCode:(Lcom/sun/jndi/dns/Header;)V
         9: .line 585
            aload 3 /* hdr */
            getfield com.sun.jndi.dns.Header.query:Z
            ifne 38
            aload 3 /* hdr */
            getfield com.sun.jndi.dns.Header.numQuestions:I
            iconst_1
            if_icmpne 38
        10: .line 587
            new com.sun.jndi.dns.ResourceRecord
            dup
            aload 1 /* pkt */
            aload 1 /* pkt */
            arraylength
        11: .line 588
            bipush 12
            iconst_1
            iconst_0
        12: .line 587
            invokespecial com.sun.jndi.dns.ResourceRecord.<init>:([BIIZZ)V
            astore 4 /* rr */
        start local 4 // com.sun.jndi.dns.ResourceRecord rr
        13: .line 591
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
            iload 2 /* xid */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.jndi.dns.ResourceRecord
            astore 5 /* query */
        start local 5 // com.sun.jndi.dns.ResourceRecord query
        14: .line 592
            aload 5 /* query */
            invokevirtual com.sun.jndi.dns.ResourceRecord.getType:()I
            istore 6 /* qtype */
        start local 6 // int qtype
        15: .line 593
            aload 5 /* query */
            invokevirtual com.sun.jndi.dns.ResourceRecord.getRrclass:()I
            istore 7 /* qclass */
        start local 7 // int qclass
        16: .line 594
            aload 5 /* query */
            invokevirtual com.sun.jndi.dns.ResourceRecord.getName:()Lcom/sun/jndi/dns/DnsName;
            astore 8 /* qname */
        start local 8 // com.sun.jndi.dns.DnsName qname
        17: .line 598
            iload 6 /* qtype */
            sipush 255
            if_icmpeq 19
        18: .line 599
            iload 6 /* qtype */
            aload 4 /* rr */
            invokevirtual com.sun.jndi.dns.ResourceRecord.getType:()I
            if_icmpne 34
        19: .line 600
      StackMap locals: com.sun.jndi.dns.DnsClient byte[] int com.sun.jndi.dns.Header com.sun.jndi.dns.ResourceRecord com.sun.jndi.dns.ResourceRecord int int com.sun.jndi.dns.DnsName
      StackMap stack:
            iload 7 /* qclass */
            sipush 255
            if_icmpeq 21
        20: .line 601
            iload 7 /* qclass */
            aload 4 /* rr */
            invokevirtual com.sun.jndi.dns.ResourceRecord.getRrclass:()I
            if_icmpne 34
        21: .line 602
      StackMap locals:
      StackMap stack:
            aload 8 /* qname */
            aload 4 /* rr */
            invokevirtual com.sun.jndi.dns.ResourceRecord.getName:()Lcom/sun/jndi/dns/DnsName;
            invokevirtual com.sun.jndi.dns.DnsName.equals:(Ljava/lang/Object;)Z
            ifeq 34
        22: .line 604
            getstatic com.sun.jndi.dns.DnsClient.debug:Z
            ifeq 26
        23: .line 605
            new java.lang.StringBuilder
            dup
            ldc "MATCH NAME:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* qname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " QTYPE:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* qtype */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        24: .line 606
            ldc " QCLASS:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* qclass */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        25: .line 605
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.jndi.dns.DnsClient.dprint:(Ljava/lang/String;)V
        26: .line 611
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.queuesLock:Ljava/lang/Object;
            dup
            astore 9
            monitorenter
        27: .line 612
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
            iload 2 /* xid */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 613
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
            iload 2 /* xid */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        29: .line 611
            aload 9
            monitorexit
        30: goto 33
      StackMap locals: com.sun.jndi.dns.DnsClient byte[] int com.sun.jndi.dns.Header com.sun.jndi.dns.ResourceRecord com.sun.jndi.dns.ResourceRecord int int com.sun.jndi.dns.DnsName java.lang.Object
      StackMap stack: java.lang.Throwable
        31: aload 9
            monitorexit
        32: athrow
        33: .line 615
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        34: .line 618
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jndi.dns.DnsClient.debug:Z
            ifeq 38
        35: .line 619
            new java.lang.StringBuilder
            dup
            ldc "NO-MATCH NAME:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* qname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " QTYPE:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* qtype */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        36: .line 620
            ldc " QCLASS:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* qclass */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        37: .line 619
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.jndi.dns.DnsClient.dprint:(Ljava/lang/String;)V
        end local 8 // com.sun.jndi.dns.DnsName qname
        end local 7 // int qclass
        end local 6 // int qtype
        end local 5 // com.sun.jndi.dns.ResourceRecord query
        end local 4 // com.sun.jndi.dns.ResourceRecord rr
        38: .line 624
      StackMap locals: com.sun.jndi.dns.DnsClient byte[] int com.sun.jndi.dns.Header
      StackMap stack:
            iconst_0
            ireturn
        39: .line 632
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.queuesLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
        40: .line 633
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
            aload 3 /* hdr */
            getfield com.sun.jndi.dns.Header.xid:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 42
        41: .line 634
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
            aload 3 /* hdr */
            getfield com.sun.jndi.dns.Header.xid:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* pkt */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        42: .line 632
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4
            monitorexit
        43: goto 46
      StackMap locals:
      StackMap stack: java.lang.Throwable
        44: aload 4
            monitorexit
        45: athrow
        46: .line 638
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jndi.dns.DnsClient.debug:Z
            ifeq 52
        47: .line 639
            new java.lang.StringBuilder
            dup
            ldc "NO-MATCH SEND ID:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        48: .line 640
            iload 2 /* xid */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " RECVD ID:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* hdr */
            getfield com.sun.jndi.dns.Header.xid:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        49: .line 641
            ldc "    Response Q:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        50: .line 642
            ldc "    Reqs size:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        51: .line 639
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.jndi.dns.DnsClient.dprint:(Ljava/lang/String;)V
        52: .line 644
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // com.sun.jndi.dns.Header hdr
        end local 2 // int xid
        end local 1 // byte[] pkt
        end local 0 // com.sun.jndi.dns.DnsClient this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   53     0    this  Lcom/sun/jndi/dns/DnsClient;
            0   53     1     pkt  [B
            0   53     2     xid  I
            1   53     3     hdr  Lcom/sun/jndi/dns/Header;
           13   38     4      rr  Lcom/sun/jndi/dns/ResourceRecord;
           14   38     5   query  Lcom/sun/jndi/dns/ResourceRecord;
           15   38     6   qtype  I
           16   38     7  qclass  I
           17   38     8   qname  Lcom/sun/jndi/dns/DnsName;
      Exception table:
        from    to  target  type
          27    30      31  any
          31    32      31  any
          40    43      44  any
          44    45      44  any
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      pkt   
      xid   

  private void checkResponseCode(com.sun.jndi.dns.Header);
    descriptor: (Lcom/sun/jndi/dns/Header;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.jndi.dns.DnsClient this
        start local 1 // com.sun.jndi.dns.Header hdr
         0: .line 653
            aload 1 /* hdr */
            getfield com.sun.jndi.dns.Header.rcode:I
            istore 2 /* rcode */
        start local 2 // int rcode
         1: .line 654
            iload 2 /* rcode */
            ifne 3
         2: .line 655
            return
         3: .line 657
      StackMap locals: int
      StackMap stack:
            iload 2 /* rcode */
            getstatic com.sun.jndi.dns.DnsClient.rcodeDescription:[Ljava/lang/String;
            arraylength
            if_icmpge 5
         4: .line 658
            getstatic com.sun.jndi.dns.DnsClient.rcodeDescription:[Ljava/lang/String;
            iload 2 /* rcode */
            aaload
            goto 6
         5: .line 659
      StackMap locals:
      StackMap stack:
            ldc "DNS error"
         6: .line 657
      StackMap locals:
      StackMap stack: java.lang.String
            astore 3 /* msg */
        start local 3 // java.lang.String msg
         7: .line 660
            new java.lang.StringBuilder
            dup
            aload 3 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " [response code "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* rcode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* msg */
         8: .line 662
            iload 2 /* rcode */
            tableswitch { // 1 - 5
                    1: 12
                    2: 9
                    3: 10
                    4: 11
                    5: 11
              default: 12
          }
         9: .line 664
      StackMap locals: java.lang.String
      StackMap stack:
            new javax.naming.ServiceUnavailableException
            dup
            aload 3 /* msg */
            invokespecial javax.naming.ServiceUnavailableException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 666
      StackMap locals:
      StackMap stack:
            new javax.naming.NameNotFoundException
            dup
            aload 3 /* msg */
            invokespecial javax.naming.NameNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 669
      StackMap locals:
      StackMap stack:
            new javax.naming.OperationNotSupportedException
            dup
            aload 3 /* msg */
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 672
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* msg */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String msg
        end local 2 // int rcode
        end local 1 // com.sun.jndi.dns.Header hdr
        end local 0 // com.sun.jndi.dns.DnsClient this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lcom/sun/jndi/dns/DnsClient;
            0   13     1    hdr  Lcom/sun/jndi/dns/Header;
            1   13     2  rcode  I
            7   13     3    msg  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      hdr   

  public static void setDebug(boolean);
    descriptor: (Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // boolean flag
         0: .line 681
            iload 0 /* flag */
            putstatic com.sun.jndi.dns.DnsClient.debug:Z
         1: .line 682
            return
        end local 0 // boolean flag
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  flag  Z
    MethodParameters:
      Name  Flags
      flag  

  private static void dprint(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String mess
         0: .line 685
            getstatic com.sun.jndi.dns.DnsClient.debug:Z
            ifeq 2
         1: .line 686
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "DNS: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* mess */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 688
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.String mess
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  mess  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      mess  
}
SourceFile: "DnsClient.java"