From c9830cca5272db9049b1724594150a79ecc6d20b Mon Sep 17 00:00:00 2001 From: Mike Hearn Date: Tue, 7 Oct 2014 19:26:10 +0200 Subject: [PATCH] Change TransactionConfidence.getBroadcastBy() to return a set instead of a list iterator. The latter form is not very convenient. --- .../main/java/org/bitcoinj/core/TransactionConfidence.java | 7 +++++-- .../java/org/bitcoinj/store/WalletProtobufSerializer.java | 3 +-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/core/TransactionConfidence.java b/core/src/main/java/org/bitcoinj/core/TransactionConfidence.java index 11f7f2463..766fa5cc5 100644 --- a/core/src/main/java/org/bitcoinj/core/TransactionConfidence.java +++ b/core/src/main/java/org/bitcoinj/core/TransactionConfidence.java @@ -17,6 +17,7 @@ package org.bitcoinj.core; +import com.google.common.collect.Sets; import org.bitcoinj.utils.ListenerRegistration; import org.bitcoinj.utils.Threading; import com.google.common.util.concurrent.ListenableFuture; @@ -25,6 +26,7 @@ import com.google.common.util.concurrent.SettableFuture; import javax.annotation.Nullable; import java.io.Serializable; import java.util.ListIterator; +import java.util.Set; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.Executor; @@ -283,8 +285,9 @@ public class TransactionConfidence implements Serializable { /** * Returns a snapshot of {@link PeerAddress}es that announced the transaction. */ - public ListIterator getBroadcastBy() { - return broadcastBy.listIterator(); + public Set getBroadcastBy() { + ListIterator iterator = broadcastBy.listIterator(); + return Sets.newHashSet(iterator); } /** Returns true if the given address has been seen via markBroadcastBy() */ diff --git a/core/src/main/java/org/bitcoinj/store/WalletProtobufSerializer.java b/core/src/main/java/org/bitcoinj/store/WalletProtobufSerializer.java index 341aaee38..f48dfb609 100644 --- a/core/src/main/java/org/bitcoinj/store/WalletProtobufSerializer.java +++ b/core/src/main/java/org/bitcoinj/store/WalletProtobufSerializer.java @@ -346,8 +346,7 @@ public class WalletProtobufSerializer { } } - for (ListIterator it = confidence.getBroadcastBy(); it.hasNext();) { - PeerAddress address = it.next(); + for (PeerAddress address : confidence.getBroadcastBy()) { Protos.PeerAddress proto = Protos.PeerAddress.newBuilder() .setIpAddress(ByteString.copyFrom(address.getAddr().getAddress())) .setPort(address.getPort())