diff --git a/core/src/main/java/com/google/bitcoin/net/discovery/TorDiscovery.java b/core/src/main/java/com/google/bitcoin/net/discovery/TorDiscovery.java index 23b403889..a65f6165e 100644 --- a/core/src/main/java/com/google/bitcoin/net/discovery/TorDiscovery.java +++ b/core/src/main/java/com/google/bitcoin/net/discovery/TorDiscovery.java @@ -49,6 +49,8 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; +import static java.util.Collections.singleton; + /** *

Supports peer discovery through Tor.

* @@ -160,11 +162,10 @@ public class TorDiscovery implements PeerDiscovery { } } - List circuits; try { - circuits = Futures.successfulAsList(circuitFutures).get(); + List circuits = new ArrayList(Futures.successfulAsList(circuitFutures).get()); // Any failures will result in null entries. Remove them. - circuits.removeAll(Collections.singleton(null)); + circuits.removeAll(singleton(null)); return circuits; } catch (ExecutionException e) { // Cannot happen, successfulAsList accepts failures @@ -199,9 +200,9 @@ public class TorDiscovery implements PeerDiscovery { } try { - List lookups = Futures.successfulAsList(lookupFutures).get(); + List lookups = new ArrayList(Futures.successfulAsList(lookupFutures).get()); // Any failures will result in null entries. Remove them. - lookups.removeAll(Collections.singleton(null)); + lookups.removeAll(singleton(null)); // Use a map to enforce one result per exit node // TODO: randomize result selection better