test/jdk/java/net/DatagramSocket/SendSize.java
changeset 48737 7c12219870fd
parent 47216 71c04702a3d5
child 57686 70f5cbb711a9
--- a/test/jdk/java/net/DatagramSocket/SendSize.java	Fri Feb 02 10:32:59 2018 -0800
+++ b/test/jdk/java/net/DatagramSocket/SendSize.java	Fri Feb 02 14:17:07 2018 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
 /* @test
  *
  * @bug 4095393
- *
+ * @test main SendSize
  * @summary this tests a regression in 1.2, beta 2 and earlier where
  * the DatagramPackets sent the entire buffer, not the buffer length
  * of the packet.
@@ -43,8 +43,12 @@
 
     public static void main(String[] args) throws Exception {
         DatagramSocket serverSocket = new DatagramSocket();
-        new ServerThread(serverSocket).start();
-        new ClientThread(serverSocket.getLocalPort()).start();
+        Thread server = new ServerThread(serverSocket);
+        server.start();
+        Thread client = new ClientThread(serverSocket.getLocalPort());
+        client.start();
+        server.join();
+        client.join();
     }
 
     static class ServerThread extends Thread {
@@ -58,24 +62,26 @@
             try {
                 System.err.println("started server thread: " + server);
                 byte[] buf = new byte[1024];
-                DatagramPacket receivePacket = new DatagramPacket(buf,
-                                                                  buf.length);
-                server.receive(receivePacket);
-                int len = receivePacket.getLength();
-                switch(len) {
-                case packetLength:
-                    System.out.println("receive length is: " + len);
-                    break;
-                default:
-                    throw new RuntimeException(
-                        "receive length is: " + len +
-                        ", send length: " + packetLength +
-                        ", buffer length: " + buf.length);
+                for (int i = 0; i < 10; i++) {
+                    DatagramPacket receivePacket = new DatagramPacket(buf,
+                            buf.length);
+                    server.receive(receivePacket);
+                    int len = receivePacket.getLength();
+                    switch (len) {
+                        case packetLength:
+                            System.out.println("receive length is: " + len);
+                            break;
+                        default:
+                            throw new RuntimeException(
+                                    "receive length is: " + len +
+                                            ", send length: " + packetLength +
+                                            ", buffer length: " + buf.length);
+                    }
                 }
                 return;
             } catch (Exception e) {
                 e.printStackTrace();
-                throw new RuntimeException("caugth: " + e);
+                throw new RuntimeException("caught: " + e);
             } finally {
                 if (server != null) { server.close(); }
             }