From c7dfe5931704d351dcfe736ca46c79a414b4b857 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Tue, 19 Mar 2019 18:01:18 +0100 Subject: [PATCH] KeyChainGroup: Fix NullPointerException in findRedeemDataFromScriptHash() if no deterministic keychain is in the group. --- .../java/org/bitcoinj/wallet/KeyChainGroup.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/wallet/KeyChainGroup.java b/core/src/main/java/org/bitcoinj/wallet/KeyChainGroup.java index 18be8580..586b88be 100644 --- a/core/src/main/java/org/bitcoinj/wallet/KeyChainGroup.java +++ b/core/src/main/java/org/bitcoinj/wallet/KeyChainGroup.java @@ -502,12 +502,14 @@ public class KeyChainGroup implements KeyBag { @Override @Nullable public RedeemData findRedeemDataFromScriptHash(byte[] scriptHash) { - // Iterate in reverse order, since the active keychain is the one most likely to have the hit - for (Iterator iter = chains.descendingIterator() ; iter.hasNext() ; ) { - DeterministicKeyChain chain = iter.next(); - RedeemData redeemData = chain.findRedeemDataByScriptHash(ByteString.copyFrom(scriptHash)); - if (redeemData != null) - return redeemData; + if (chains != null) { + // Iterate in reverse order, since the active keychain is the one most likely to have the hit + for (Iterator iter = chains.descendingIterator(); iter.hasNext();) { + DeterministicKeyChain chain = iter.next(); + RedeemData redeemData = chain.findRedeemDataByScriptHash(ByteString.copyFrom(scriptHash)); + if (redeemData != null) + return redeemData; + } } return null; }