Workaround localhost issues on old runtimes

Older ART runtimes (L and M) may fail to resolve 'localhost' on some
host machines. This CL works around that issue by using the loop back
address instead.

Bug: 37069342
Test: art/tools/run-jdwp-tests.sh --mode=host --variant=X64
Test: art/tools/run-jdwp-tests.sh --mode=target --variant=X64
Change-Id: Id44b635f5af2a2be4552b5088e0a196f554095c3
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/SocketTransportWrapper.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/SocketTransportWrapper.java
index 74fe05f..2a8eeb0 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/SocketTransportWrapper.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/jdwp/SocketTransportWrapper.java
@@ -95,7 +95,11 @@
             iAddress = InetAddress.getLocalHost();
         }
 
-        address = iAddress.getHostName() + ":" + serverSocket.getLocalPort();
+        // Older Android runtimes may fail to resolve 'localhost' on a host machine. The workaround
+        // is to use the address instead of the hostname.
+        String hostNameOrAddress =
+                iAddress.isLoopbackAddress() ? iAddress.getHostAddress() : iAddress.getHostName();
+        address = hostNameOrAddress + ":" + serverSocket.getLocalPort();
         return address;
     }