@@ -39,16 +39,18 @@ public void run() {
3939 socket .receive (packet );
4040 String received = new String (packet .getData (), 0 , packet .getLength ());
4141 InetSocketAddress adr = (InetSocketAddress ) packet .getSocketAddress ();
42- outputs .add (UdpDatagram .builder ()
43- .metaData (UdpDatagramMetaData .builder ()
44- .hostString (adr .getHostString ())
45- .sender (adr .getAddress ())
46- .sendPort (adr .getPort ())
47- .timestamp (LocalDateTime .now (ZoneOffset .UTC ))
48- .build ())
49- .content (received )
50- .bytes (Arrays .copyOf (packet .getData (), packet .getLength ()))
51- .build ());
42+ synchronized (outputs ) {
43+ outputs .add (UdpDatagram .builder ()
44+ .metaData (UdpDatagramMetaData .builder ()
45+ .hostString (adr .getHostString ())
46+ .sender (adr .getAddress ())
47+ .sendPort (adr .getPort ())
48+ .timestamp (LocalDateTime .now (ZoneOffset .UTC ))
49+ .build ())
50+ .content (received )
51+ .bytes (Arrays .copyOf (packet .getData (), packet .getLength ()))
52+ .build ());
53+ }
5254 } catch (IOException e ) {
5355 // NOOP
5456 }
@@ -61,9 +63,11 @@ public void run() {
6163 }
6264
6365 public Collection <UdpDatagram > getReceivedDatagrams () {
64- List <UdpDatagram > result = outputs .stream ().filter (Objects ::nonNull ).collect (Collectors .toList ());
65- outputs .clear ();
66- return result ;
66+ synchronized (outputs ) {
67+ List <UdpDatagram > result = outputs .stream ().filter (Objects ::nonNull ).collect (Collectors .toList ());
68+ outputs .clear ();
69+ return result ;
70+ }
6771 }
6872
6973 public void close () {
0 commit comments