6955783: ServiceUnavailableException caught even the secondary DNS is available
authorweijun
Thu, 27 May 2010 17:24:40 +0800
changeset 5624 302c8bd0d942
parent 5623 5c9695dc013a
child 5626 f0a0028ce788
6955783: ServiceUnavailableException caught even the secondary DNS is available Reviewed-by: vinnie
jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java
--- a/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java	Tue May 25 15:39:38 2010 -0700
+++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java	Thu May 27 17:24:40 2010 +0800
@@ -525,11 +525,11 @@
         }
         byte[] pkt;
         if ((pkt = (byte[]) resps.get(xid)) != null) {
+            checkResponseCode(new Header(pkt, pkt.length));
             synchronized (queuesLock) {
                 resps.remove(xid);
                 reqs.remove(xid);
             }
-            checkResponseCode(new Header(pkt, pkt.length));
 
             if (debug) {
                 dprint("FOUND (" + Thread.currentThread() +
@@ -562,12 +562,12 @@
                 dprint("XID MATCH:" + xid);
             }
 
+            checkResponseCode(hdr);
             // remove the response for the xid if received by some other thread.
             synchronized (queuesLock) {
                 resps.remove(xid);
                 reqs.remove(xid);
             }
-            checkResponseCode(hdr);
             return true;
         }