From 0eabd240a6eb4d7d07fd59c49b90623ee664e372 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 950b37ff..03fccc18 100644 --- a/core/src/main/java/org/bitcoinj/core/Transaction.java +++ b/core/src/main/java/org/bitcoinj/core/Transaction.java @@ -79,8 +79,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());