From 9030d266605c394038152fb6a4dac172ae8c1c1e Mon Sep 17 00:00:00 2001
From: "Norbraten, Terry" <tdnorbra@nps.edu>
Date: Thu, 4 Jun 2020 19:45:31 -0700
Subject: [PATCH] minimize object creation in loops

---
 src/edu/nps/moves/dis7/utilities/DisNetworking.java    | 5 +++--
 src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/edu/nps/moves/dis7/utilities/DisNetworking.java b/src/edu/nps/moves/dis7/utilities/DisNetworking.java
index 4250a07d1a..8fcf76bf18 100644
--- a/src/edu/nps/moves/dis7/utilities/DisNetworking.java
+++ b/src/edu/nps/moves/dis7/utilities/DisNetworking.java
@@ -81,8 +81,8 @@ public class DisNetworking
 
     rsocket = new MulticastSocket(DIS_PORT);
     InetAddress maddr = InetAddress.getByName(MCAST_GROUP);
-    rsocket.setNetworkInterface(findIp4Interface());
-    rsocket.joinGroup(maddr);
+    InetSocketAddress group = new InetSocketAddress(maddr, DIS_PORT);
+    rsocket.joinGroup(group, findIp4Interface());
     byte buffer[] = new byte[MAX_DIS_PDU_SIZE];
     packet = new DatagramPacket(buffer, buffer.length);
 
@@ -90,6 +90,7 @@ public class DisNetworking
     rsocket.receive(packet);   //blocks here waiting for next DIS pdu to be received on broadcast IP and specified port 
     //System.out.println("packet received from " + packet.getSocketAddress());
     
+    rsocket.leaveGroup(group, findIp4Interface());
     rsocket.close();
     rsocket = null;
     return new BuffAndLength(packet.getData(), packet.getLength());
diff --git a/src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java b/src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java
index 9c4cb092cb..dda4e59a27 100644
--- a/src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java
+++ b/src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java
@@ -187,7 +187,7 @@ public class DisThreadedNetIF
     byte buffer[] = new byte[MAX_DIS_PDU_SIZE];
     DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
     InetAddress maddr;
-    InetSocketAddress group;
+    InetSocketAddress group = null;
     Pdu pdu;
     ByteBuffer byteBuffer;
     
-- 
GitLab