Hi, Please review the fix: webrev: http://cr.openjdk.java.net/~xuelei/7155051/webrev.00/
Cause of the issue: The DNS provider attempts to check the XID of the response to make sure the response received from the server matches the requested XID. If the response's XID does not match, the DNS provider caches the response in case another thread needs it. However, the response is cached with the incorrect XID. Therefore, when the lookup code continues, the current request receives an incorrect response. Thanks, Xuelei Fan