From 5a50df79a8e5170c674661d4c4805c2e832cdd8a Mon Sep 17 00:00:00 2001
From: Don Brutzman <brutzman@nps.edu>
Date: Mon, 31 Aug 2020 09:18:00 -0700
Subject: [PATCH] force DataOutputStream flush() after send

---
 .../moves/dis7/utilities/DisThreadedNetworkInterface.java  | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/edu/nps/moves/dis7/utilities/DisThreadedNetworkInterface.java b/src/edu/nps/moves/dis7/utilities/DisThreadedNetworkInterface.java
index e623fbfb59..5b1e25e740 100644
--- a/src/edu/nps/moves/dis7/utilities/DisThreadedNetworkInterface.java
+++ b/src/edu/nps/moves/dis7/utilities/DisThreadedNetworkInterface.java
@@ -281,9 +281,9 @@ public class DisThreadedNetworkInterface
         Pdu pdu;
 
         // The capacity could go up to MAX_DIS_PDU_SIZE, but this should be good for now
-        ByteArrayOutputStream baos = new ByteArrayOutputStream(MAX_TRANSMISSION_UNIT_SIZE);
-        DataOutputStream dos = new DataOutputStream(baos);
-        DatagramPacket packet = new DatagramPacket(baos.toByteArray(), baos.size(), group);
+        ByteArrayOutputStream baos   = new ByteArrayOutputStream(MAX_TRANSMISSION_UNIT_SIZE);
+        DataOutputStream      dos    = new DataOutputStream(baos);
+        DatagramPacket        packet = new DatagramPacket(baos.toByteArray(), baos.size(), group);
 
         while (!killed) { // keep trying on error
             try {
@@ -294,6 +294,7 @@ public class DisThreadedNetworkInterface
                     packet.setData(baos.toByteArray());
                     socket.send(packet);
 
+                    dos.flush();  // immediately force pdu write
                     baos.reset();
                 }
             } 
-- 
GitLab