From 479ad2a49b4f4fc8e305d9262d4fedaa202c47a1 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Sun, 25 Jun 2017 20:18:37 +0200 Subject: [PATCH] Transaction.SORT_TX_BY_HEIGHT: For transactions not 'building', use -1 height for sorting purposes. --- core/src/main/java/org/bitcoinj/core/Transaction.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/core/Transaction.java b/core/src/main/java/org/bitcoinj/core/Transaction.java index 656bc29b..156dfdda 100644 --- a/core/src/main/java/org/bitcoinj/core/Transaction.java +++ b/core/src/main/java/org/bitcoinj/core/Transaction.java @@ -78,8 +78,12 @@ public class Transaction extends ChildMessage { public static final Comparator SORT_TX_BY_HEIGHT = new Comparator() { @Override public int compare(final Transaction tx1, final Transaction tx2) { - final int height1 = tx1.getConfidence().getAppearedAtChainHeight(); - final int height2 = tx2.getConfidence().getAppearedAtChainHeight(); + final TransactionConfidence confidence1 = tx1.getConfidence(); + final int height1 = confidence1.getConfidenceType() == ConfidenceType.BUILDING + ? confidence1.getAppearedAtChainHeight() : -1; + final TransactionConfidence confidence2 = tx2.getConfidence(); + final int height2 = confidence2.getConfidenceType() == ConfidenceType.BUILDING + ? confidence2.getAppearedAtChainHeight() : -1; final int heightComparison = -(Ints.compare(height1, height2)); //If height1==height2, compare by tx hash to make comparator consistent with equals return heightComparison != 0 ? heightComparison : tx1.getHash().compareTo(tx2.getHash());