From 675abc29743f31670ec9ea3cfa9aee9ed9ff14cc Mon Sep 17 00:00:00 2001 From: Mike Hearn Date: Mon, 27 Jun 2011 19:56:37 +0000 Subject: [PATCH] Remove transactions from the dead pool when they become live, and from pending when they become dead. Addresses comments from Miron. --- src/com/google/bitcoin/core/Wallet.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/com/google/bitcoin/core/Wallet.java b/src/com/google/bitcoin/core/Wallet.java index f089ba69..fcdeece5 100644 --- a/src/com/google/bitcoin/core/Wallet.java +++ b/src/com/google/bitcoin/core/Wallet.java @@ -842,6 +842,7 @@ public class Wallet implements Serializable { TransactionOutput doubleSpent = input.getConnectedOutput(pool); Transaction replacement = doubleSpent.getSpentBy().parentTransaction; dead.put(tx.getHash(), tx); + pending.remove(tx.getHash()); // Inform the event listeners of the newly dead tx. for (WalletEventListener listener : eventListeners) { synchronized (listener) { @@ -860,6 +861,7 @@ public class Wallet implements Serializable { // All inputs are either valid for spending or don't come from us. Miners are trying to reinclude it. log.info(" ->pending", tx.getHashAsString()); pending.put(tx.getHash(), tx); + dead.remove(tx.getHash()); } }