diff --git a/src/main/java/org/araymond/joal/core/ttorrent/client/announcer/tracker/NewTrackerClient.java b/src/main/java/org/araymond/joal/core/ttorrent/client/announcer/tracker/NewTrackerClient.java index 22bb531..7b1cca2 100644 --- a/src/main/java/org/araymond/joal/core/ttorrent/client/announcer/tracker/NewTrackerClient.java +++ b/src/main/java/org/araymond/joal/core/ttorrent/client/announcer/tracker/NewTrackerClient.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.net.URI; import java.nio.ByteBuffer; import java.util.Collection; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -31,7 +32,10 @@ public class NewTrackerClient { private final TrackerClientUriProvider trackerClientUriProvider; public NewTrackerClient(final MockedTorrent torrent) { - final Set trackerURIs = torrent.getAnnounceList().stream().flatMap(Collection::stream).collect(Collectors.toSet()); + final List trackerURIs = torrent.getAnnounceList().stream() // Use a list to keep it ordered + .sequential() + .flatMap(Collection::stream) + .collect(Collectors.toList()); this.trackerClientUriProvider = new TrackerClientUriProvider(trackerURIs); } diff --git a/src/main/java/org/araymond/joal/core/ttorrent/client/announcer/tracker/TrackerClientUriProvider.java b/src/main/java/org/araymond/joal/core/ttorrent/client/announcer/tracker/TrackerClientUriProvider.java index c1c2284..1cc44b8 100644 --- a/src/main/java/org/araymond/joal/core/ttorrent/client/announcer/tracker/TrackerClientUriProvider.java +++ b/src/main/java/org/araymond/joal/core/ttorrent/client/announcer/tracker/TrackerClientUriProvider.java @@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory; import java.net.URI; import java.util.Iterator; +import java.util.List; import java.util.Set; class TrackerClientUriProvider { @@ -14,7 +15,7 @@ class TrackerClientUriProvider { private final Iterator addressIterator; private URI currentURI = null; - TrackerClientUriProvider(@SuppressWarnings("TypeMayBeWeakened") final Set trackersURI) { + TrackerClientUriProvider(@SuppressWarnings("TypeMayBeWeakened") final List trackersURI) { // TODO: sorted(new PreferHTTPSComparator()) this.addressIterator = Iterators.cycle(trackersURI); }