From d753d28ba52abd658d948ded446bb71bb3c9b8db Mon Sep 17 00:00:00 2001 From: Mike Hearn Date: Tue, 28 Jul 2015 20:59:03 +0200 Subject: [PATCH] Wallet: take key chain lock not only wallet lock in getWatchedOutputs(). Flagged by the IntelliJ Inspector static analysis engine. --- core/src/main/java/org/bitcoinj/core/Wallet.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/src/main/java/org/bitcoinj/core/Wallet.java b/core/src/main/java/org/bitcoinj/core/Wallet.java index 67b678e0..51856a56 100644 --- a/core/src/main/java/org/bitcoinj/core/Wallet.java +++ b/core/src/main/java/org/bitcoinj/core/Wallet.java @@ -2600,6 +2600,7 @@ public class Wallet extends BaseTaggableObject implements BlockChainListener, Pe */ public List getWatchedOutputs(boolean excludeImmatureCoinbases) { lock.lock(); + keychainLock.lock(); try { LinkedList candidates = Lists.newLinkedList(); for (Transaction tx : Iterables.concat(unspent.values(), pending.values())) { @@ -2617,6 +2618,7 @@ public class Wallet extends BaseTaggableObject implements BlockChainListener, Pe } return candidates; } finally { + keychainLock.unlock(); lock.unlock(); } }