From 97a9a6090a44ab4cde7939c5e3a1a84ec926f950 Mon Sep 17 00:00:00 2001
From: str4d <str4d@mail.i2p>
Date: Wed, 27 Nov 2013 01:55:29 +0000
Subject: [PATCH] Use copy constructor instead of clone()

---
 router/java/src/net/i2p/router/OutNetMessage.java      |  2 +-
 .../net/i2p/router/networkdb/kademlia/SearchState.java | 10 +++++-----
 .../net/i2p/router/networkdb/kademlia/StoreState.java  |  8 ++++----
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/router/java/src/net/i2p/router/OutNetMessage.java b/router/java/src/net/i2p/router/OutNetMessage.java
index eb9815c5a4..25149b1f35 100644
--- a/router/java/src/net/i2p/router/OutNetMessage.java
+++ b/router/java/src/net/i2p/router/OutNetMessage.java
@@ -151,7 +151,7 @@ public class OutNetMessage implements CDPQEntry {
         if (_log.shouldLog(Log.INFO)) {
             synchronized (this) {
                 locked_initTimestamps();
-                return (Map<String, Long>)_timestamps.clone();
+                return new HashMap<String, Long>(_timestamps);
             }
         }
         return Collections.emptyMap();
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/SearchState.java b/router/java/src/net/i2p/router/networkdb/kademlia/SearchState.java
index 9a4f99c43b..b48b3320cd 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/SearchState.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/SearchState.java
@@ -44,12 +44,12 @@ class SearchState {
     public Hash getTarget() { return _searchKey; }
     public Set<Hash> getPending() {
         synchronized (_pendingPeers) {
-            return (Set<Hash>)_pendingPeers.clone();
+            return new HashSet<Hash>(_pendingPeers);
         }
     }
     public Set<Hash> getAttempted() {
         synchronized (_attemptedPeers) {
-            return (Set<Hash>)_attemptedPeers.clone();
+            return new HashSet<Hash>(_attemptedPeers);
         }
     }
     public Set<Hash> getClosestAttempted(int max) {
@@ -78,12 +78,12 @@ class SearchState {
     }
     public Set<Hash> getSuccessful() {
         synchronized (_successfulPeers) {
-            return (Set<Hash>)_successfulPeers.clone();
+            return new HashSet<Hash>(_successfulPeers);
         }
     }
     public Set<Hash> getFailed() {
         synchronized (_failedPeers) {
-            return (Set<Hash>)_failedPeers.clone();
+            return new HashSet<Hash>(_failedPeers);
         }
     }
     public boolean completed() { return _completed != -1; }
@@ -155,7 +155,7 @@ class SearchState {
         }
     }
     
-    public Set<Hash> getRepliedPeers() { synchronized (_repliedPeers) { return (Set<Hash>)_repliedPeers.clone(); } }
+    public Set<Hash> getRepliedPeers() { synchronized (_repliedPeers) { return new HashSet<Hash>(_repliedPeers); } }
     
     public void replyTimeout(Hash peer) {
         synchronized (_pendingPeers) {
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/StoreState.java b/router/java/src/net/i2p/router/networkdb/kademlia/StoreState.java
index b599186127..2b14b80b20 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/StoreState.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/StoreState.java
@@ -58,17 +58,17 @@ class StoreState {
     public DatabaseEntry getData() { return _data; }
     public Set<Hash> getPending() { 
         synchronized (_pendingPeers) {
-            return (Set<Hash>)_pendingPeers.clone(); 
+            return new HashSet<Hash>(_pendingPeers); 
         }
     }
     public Set<Hash> getAttempted() { 
         synchronized (_attemptedPeers) {
-            return (Set<Hash>)_attemptedPeers.clone(); 
+            return new HashSet<Hash>(_attemptedPeers); 
         }
     }
     public Set<Hash> getSuccessful() { 
         synchronized (_successfulPeers) {
-            return (Set<Hash>)_successfulPeers.clone(); 
+            return new HashSet<Hash>(_successfulPeers); 
         }
     }
     /** unused */
@@ -82,7 +82,7 @@ class StoreState {
 
     public Set<Hash> getFailed() { 
         synchronized (_failedPeers) {
-            return (Set<Hash>)_failedPeers.clone(); 
+            return new HashSet<Hash>(_failedPeers); 
         }
     }
     public boolean completed() { return _completed != -1; }
-- 
GitLab