3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-02-07 14:54:15 +00:00

TorDiscovery: Bugfix. Guava now returns immutable lists from Futures methods (annoying).

This commit is contained in:
Mike Hearn 2014-04-27 18:11:50 +02:00
parent 9cfb420cdb
commit d39cc8838e

View File

@ -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;
/**
* <p>Supports peer discovery through Tor.</p>
*
@ -160,11 +162,10 @@ public class TorDiscovery implements PeerDiscovery {
}
}
List<Circuit> circuits;
try {
circuits = Futures.successfulAsList(circuitFutures).get();
List<Circuit> circuits = new ArrayList<Circuit>(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<Lookup> lookups = Futures.successfulAsList(lookupFutures).get();
List<Lookup> lookups = new ArrayList<Lookup>(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