From 77dd531be4242df0ce5b8612c62854cd6c5498e1 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Sun, 16 Nov 2014 12:27:11 +0100 Subject: [PATCH] Fix potential race condition when checking keychain for key rotation time. --- core/src/main/java/org/bitcoinj/core/Wallet.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/core/Wallet.java b/core/src/main/java/org/bitcoinj/core/Wallet.java index 61ab586a..6c34019c 100644 --- a/core/src/main/java/org/bitcoinj/core/Wallet.java +++ b/core/src/main/java/org/bitcoinj/core/Wallet.java @@ -4459,13 +4459,13 @@ public class Wallet extends BaseTaggableObject implements Serializable, BlockCha checkState(keychainLock.isHeldByCurrentThread()); List results = Lists.newLinkedList(); // TODO: Handle chain replays here. - long keyRotationTimestamp = vKeyRotationTimestamp; + final long keyRotationTimestamp = vKeyRotationTimestamp; if (keyRotationTimestamp == 0) return results; // Nothing to do. // We might have to create a new HD hierarchy if the previous ones are now rotating. boolean allChainsRotating = true; for (DeterministicKeyChain chain : keychain.getDeterministicKeyChains()) { - if (chain.getEarliestKeyCreationTime() >= vKeyRotationTimestamp) { + if (chain.getEarliestKeyCreationTime() >= keyRotationTimestamp) { allChainsRotating = false; break; }