From e70229140bb03f9be75589d454eee768043f1897 Mon Sep 17 00:00:00 2001
From: idk <hankhill19580@gmail.com>
Date: Sun, 8 Jan 2023 00:28:26 +0000
Subject: [PATCH] use a containsKey()+put instead of putIfAbsent because
 putIfAbsent is not present in Java 8, thereby breaking Maven builds

---
 .../router/transport/udp/UDPTransport.java    | 20 ++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
index 826a027a86..52f22cfc5f 100644
--- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
+++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
@@ -1736,7 +1736,11 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
         Long id = Long.valueOf(peer.getRcvConnID());
         PeerStateDestroyed oldPSD;
         synchronized(_addDropLock) {
-            oldPSD = _recentlyClosedConnIDs.putIfAbsent(id, peer);
+            if (_recentlyClosedConnIDs.containsKey(id)){
+                oldPSD = _recentlyClosedConnIDs.put(id, peer);
+            }else{
+                oldPSD = _recentlyClosedConnIDs.get(id);
+            }
         }
         if (oldPSD != null)
             peer.kill();
@@ -1928,7 +1932,12 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
                 PeerState2 state2 = (PeerState2) oldPeer;
                 Long id = Long.valueOf(state2.getRcvConnID());
                 PeerStateDestroyed newPSD = new PeerStateDestroyed(_context, this, state2);
-                PeerStateDestroyed oldPSD = _recentlyClosedConnIDs.putIfAbsent(id, newPSD);
+                PeerStateDestroyed oldPSD;
+                if (_recentlyClosedConnIDs.containsKey(id)){
+                    oldPSD = _recentlyClosedConnIDs.put(id, newPSD);
+                }else{
+                    oldPSD = _recentlyClosedConnIDs.get(id);
+                }
                 if (oldPSD != null)
                     newPSD.kill();
                 _peersByConnID.remove(id);
@@ -2187,7 +2196,12 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
             PeerState2 state2 = (PeerState2) peer;
             Long id = Long.valueOf(state2.getRcvConnID());
             PeerStateDestroyed newPSD = new PeerStateDestroyed(_context, this, state2);
-            PeerStateDestroyed oldPSD = _recentlyClosedConnIDs.putIfAbsent(id, newPSD);
+            PeerStateDestroyed oldPSD;
+            if (_recentlyClosedConnIDs.containsKey(id)){
+                oldPSD = _recentlyClosedConnIDs.put(id, newPSD);
+            }else{
+                oldPSD = _recentlyClosedConnIDs.get(id);
+            }
             if (oldPSD != null)
                 newPSD.kill();
             _peersByConnID.remove(id);
-- 
GitLab