6934923: test/java/net/ipv6tests/TcpTest.java hangs on Solaris 10
authorchegar
Tue, 16 Mar 2010 10:05:51 +0000
changeset 5151 e62028f44cf6
parent 5150 ba30c55414f6
child 5152 a95085d9fe62
6934923: test/java/net/ipv6tests/TcpTest.java hangs on Solaris 10 Reviewed-by: alanb
jdk/test/java/net/ipv6tests/TcpTest.java
jdk/test/java/net/ipv6tests/Tests.java
--- a/jdk/test/java/net/ipv6tests/TcpTest.java	Fri Mar 12 09:06:00 2010 -0800
+++ b/jdk/test/java/net/ipv6tests/TcpTest.java	Tue Mar 16 10:05:51 2010 +0000
@@ -47,9 +47,11 @@
         try {
             ia4any = InetAddress.getByName ("0.0.0.0");
             ia6any = InetAddress.getByName ("::0");
-            int scope = ia6addr.getScopeId();
-            if (scope != 0) {
-                ia6bad = InetAddress.getByName ("fe80::1:2:3:4:5:6%"+scope);
+            if (ia6addr != null) {
+                int scope = ia6addr.getScopeId();
+                if (scope != 0) {
+                    ia6bad = InetAddress.getByName ("fe80::1:2:3:4:5:6%"+scope);
+                }
             } else {
                 ia6bad = InetAddress.getByName ("fe80::1:2:3:4:5:6");
             }
--- a/jdk/test/java/net/ipv6tests/Tests.java	Fri Mar 12 09:06:00 2010 -0800
+++ b/jdk/test/java/net/ipv6tests/Tests.java	Tue Mar 16 10:05:51 2010 +0000
@@ -38,12 +38,25 @@
         OutputStream o1 = s1.getOutputStream();
         OutputStream o2 = s2.getOutputStream();
 
-        simpleWrite (o1, 100);
-        simpleWrite (o2, 200);
+        startSimpleWriter("SimpleWriter-1", o1, 100);
+        startSimpleWriter("SimpleWriter-2", o2, 200);
         simpleRead (i2, 100);
         simpleRead (i1, 200);
     }
 
+    static void startSimpleWriter(String threadName, final OutputStream os, final int start) {
+        (new Thread(new Runnable() {
+            public void run() {
+                try { simpleWrite(os, start); }
+                catch (Exception e) {unexpected(e); }
+            }}, threadName)).start();
+    }
+
+    static void unexpected(Exception e ) {
+        System.out.println("Unexcepted Exception: " + e);
+        e.printStackTrace();
+    }
+
     /**
      * Send a packet from s1 to s2 (ia2/s2.localPort) and check it
      * Send a packet from s2 to s1 (ia1/s1.localPort) and check it
@@ -247,13 +260,15 @@
         }
 
         private NetworkInterface getNextIf () {
-            while (ifs.hasMoreElements()) {
-                NetworkInterface nic = (NetworkInterface)ifs.nextElement();
-                try {
-                    if (nic.isUp() && !nic.isLoopback())
-                        return nic;
-                } catch (SocketException e) {
-                    // ignore
+            if (ifs != null) {
+                while (ifs.hasMoreElements()) {
+                    NetworkInterface nic = (NetworkInterface)ifs.nextElement();
+                    try {
+                        if (nic.isUp() && !nic.isLoopback())
+                            return nic;
+                    } catch (SocketException e) {
+                        // ignore
+                    }
                 }
             }