From c87899c662fff2e678229c32fda3793645e9a7f7 Mon Sep 17 00:00:00 2001 From: chimp1984 Date: Fri, 4 Sep 2020 14:51:34 -0500 Subject: [PATCH] Add check if xmrTxProof is used to avoid null pointer exception --- .../steps/seller/SellerStep3View.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep3View.java b/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep3View.java index b0e0fa57c2..afa68484e3 100644 --- a/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep3View.java +++ b/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep3View.java @@ -77,7 +77,6 @@ import static bisq.desktop.util.FormBuilder.*; public class SellerStep3View extends TradeStepView { - private final ChangeListener proofResultListener; private Button confirmButton; private Label statusLabel; private BusyAnimation busyAnimation; @@ -85,6 +84,8 @@ public class SellerStep3View extends TradeStepView { private Timer timeoutTimer; private InfoTextField assetTxProofResultField; private TxConfidenceIndicator assetTxConfidenceIndicator; + private ChangeListener proofResultListener; + private boolean useXmrTxProof; /////////////////////////////////////////////////////////////////////////////////////////// @@ -93,10 +94,6 @@ public class SellerStep3View extends TradeStepView { public SellerStep3View(PendingTradesViewModel model) { super(model); - - proofResultListener = (observable, oldValue, newValue) -> { - applyAssetTxProofResult(trade.getAssetTxProofResult()); - }; } @Override @@ -157,13 +154,19 @@ public class SellerStep3View extends TradeStepView { } }); - // we listen for updates on the trade autoConfirmResult field - if (assetTxProofResultField != null) { - trade.getAssetTxProofResultUpdateProperty().addListener(proofResultListener); + if (useXmrTxProof) { + proofResultListener = (observable, oldValue, newValue) -> { + applyAssetTxProofResult(trade.getAssetTxProofResult()); + }; + + // we listen for updates on the trade autoConfirmResult field + if (assetTxProofResultField != null) { + trade.getAssetTxProofResultUpdateProperty().addListener(proofResultListener); + applyAssetTxProofResult(trade.getAssetTxProofResult()); + } + applyAssetTxProofResult(trade.getAssetTxProofResult()); } - - applyAssetTxProofResult(trade.getAssetTxProofResult()); } @Override @@ -181,7 +184,7 @@ public class SellerStep3View extends TradeStepView { timeoutTimer.stop(); } - if (assetTxProofResultField != null) { + if (useXmrTxProof && assetTxProofResultField != null) { trade.getAssetTxProofResultUpdateProperty().removeListener(proofResultListener); } } @@ -235,7 +238,8 @@ public class SellerStep3View extends TradeStepView { GridPane.setRowSpan(titledGroupBg, 4); } - if (isBlockChain && trade.getOffer().getCurrencyCode().equals("XMR")) { + useXmrTxProof = isBlockChain && trade.getOffer().getCurrencyCode().equals("XMR"); + if (useXmrTxProof) { assetTxProofResultField = new InfoTextField(); Tuple2 topLabelWithVBox = getTopLabelWithVBox(Res.get("portfolio.pending.step3_seller.autoConf.status.label"), assetTxProofResultField);