mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-04-18 14:55:53 -04:00
Add null checks
This commit is contained in:
parent
33682694ed
commit
3b75cc2fd0
@ -2,8 +2,6 @@
|
||||
Theme colors:
|
||||
|
||||
logo colors:
|
||||
blue: 0096c9
|
||||
dark grey: #333333
|
||||
|
||||
new blue: 0f87c3
|
||||
new grey: 666666
|
||||
|
@ -59,7 +59,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
/**
|
||||
* Domain for that UI element.
|
||||
@ -244,7 +244,7 @@ class CreateOfferDataModel implements Activatable, DataModel {
|
||||
@SuppressWarnings("NullableProblems")
|
||||
void setDirection(Direction direction) {
|
||||
// direction can not be changed once it is initially set
|
||||
checkArgument(direction != null);
|
||||
checkNotNull(direction);
|
||||
this.direction = direction;
|
||||
}
|
||||
|
||||
|
@ -129,15 +129,22 @@ class TakeOfferDataModel implements Activatable, DataModel {
|
||||
}
|
||||
|
||||
void takeOffer() {
|
||||
Trade trade = tradeManager.takeOffer(amountAsCoin.get(), offer);
|
||||
final Trade trade = tradeManager.takeOffer(amountAsCoin.get(), offer);
|
||||
trade.stateProperty().addListener((ov, oldValue, newValue) -> {
|
||||
log.debug("trade state = " + newValue);
|
||||
switch (newValue) {
|
||||
// TODO Check why DEPOSIT_CONFIRMED can happen, refactor state handling
|
||||
case DEPOSIT_PUBLISHED:
|
||||
case DEPOSIT_CONFIRMED:
|
||||
transactionId.set(trade.getDepositTx().getHashAsString());
|
||||
requestTakeOfferSuccess.set(true);
|
||||
// TODO null pointer happened here!
|
||||
if (trade.getDepositTx() != null) {
|
||||
transactionId.set(trade.getDepositTx().getHashAsString());
|
||||
requestTakeOfferSuccess.set(true);
|
||||
}
|
||||
else {
|
||||
log.warn("trade.getDepositTx() = null. at trade state " + newValue +
|
||||
" That should not happen and needs more investigation why it can happen.");
|
||||
}
|
||||
break;
|
||||
case FAILED:
|
||||
requestTakeOfferErrorMessage.set("An error occurred. Error: " + trade.getFault().getMessage());
|
||||
|
@ -418,34 +418,48 @@ public class TradeManager {
|
||||
log.trace("onIncomingTradeMessage sender " + sender);
|
||||
|
||||
String tradeId = tradeMessage.getTradeId();
|
||||
|
||||
if (tradeMessage instanceof RequestTakeOfferMessage) {
|
||||
createOffererAsBuyerProtocol(tradeId, sender);
|
||||
if (tradeId != null) {
|
||||
if (tradeMessage instanceof RequestTakeOfferMessage) {
|
||||
createOffererAsBuyerProtocol(tradeId, sender);
|
||||
}
|
||||
else if (tradeMessage instanceof RespondToTakeOfferRequestMessage) {
|
||||
takerAsSellerProtocolMap.get(tradeId).onRespondToTakeOfferRequestMessage(
|
||||
(RespondToTakeOfferRequestMessage) tradeMessage);
|
||||
}
|
||||
else if (tradeMessage instanceof TakeOfferFeePayedMessage) {
|
||||
offererAsBuyerProtocolMap.get(tradeId).onTakeOfferFeePayedMessage((TakeOfferFeePayedMessage)
|
||||
tradeMessage);
|
||||
}
|
||||
else if (tradeMessage instanceof RequestTakerDepositPaymentMessage) {
|
||||
takerAsSellerProtocolMap.get(tradeId).onRequestTakerDepositPaymentMessage(
|
||||
(RequestTakerDepositPaymentMessage) tradeMessage);
|
||||
}
|
||||
else if (tradeMessage instanceof RequestOffererPublishDepositTxMessage) {
|
||||
offererAsBuyerProtocolMap.get(tradeId).onRequestOffererPublishDepositTxMessage(
|
||||
(RequestOffererPublishDepositTxMessage) tradeMessage);
|
||||
}
|
||||
else if (tradeMessage instanceof DepositTxPublishedMessage) {
|
||||
persistPendingTrades();
|
||||
takerAsSellerProtocolMap.get(tradeId).onDepositTxPublishedMessage((DepositTxPublishedMessage)
|
||||
tradeMessage);
|
||||
}
|
||||
else if (tradeMessage instanceof BankTransferInitedMessage) {
|
||||
// Here happened a null pointer. I assume the only possible reason was that we got a null for the
|
||||
// tradeID
|
||||
// as the takerAsSellerProtocolMap need to have that trade got added earlier.
|
||||
// For getting better info we add a check. tradeId is checked above.
|
||||
if (takerAsSellerProtocolMap.get(tradeId) == null)
|
||||
log.error("takerAsSellerProtocolMap.get(tradeId) = null. That must not happen.");
|
||||
takerAsSellerProtocolMap.get(tradeId).onBankTransferInitedMessage((BankTransferInitedMessage)
|
||||
tradeMessage);
|
||||
}
|
||||
else if (tradeMessage instanceof PayoutTxPublishedMessage) {
|
||||
offererAsBuyerProtocolMap.get(tradeId).onPayoutTxPublishedMessage((PayoutTxPublishedMessage)
|
||||
tradeMessage);
|
||||
}
|
||||
}
|
||||
else if (tradeMessage instanceof RespondToTakeOfferRequestMessage) {
|
||||
takerAsSellerProtocolMap.get(tradeId).onRespondToTakeOfferRequestMessage(
|
||||
(RespondToTakeOfferRequestMessage) tradeMessage);
|
||||
}
|
||||
else if (tradeMessage instanceof TakeOfferFeePayedMessage) {
|
||||
offererAsBuyerProtocolMap.get(tradeId).onTakeOfferFeePayedMessage((TakeOfferFeePayedMessage) tradeMessage);
|
||||
}
|
||||
else if (tradeMessage instanceof RequestTakerDepositPaymentMessage) {
|
||||
takerAsSellerProtocolMap.get(tradeId).onRequestTakerDepositPaymentMessage(
|
||||
(RequestTakerDepositPaymentMessage) tradeMessage);
|
||||
}
|
||||
else if (tradeMessage instanceof RequestOffererPublishDepositTxMessage) {
|
||||
offererAsBuyerProtocolMap.get(tradeId).onRequestOffererPublishDepositTxMessage(
|
||||
(RequestOffererPublishDepositTxMessage) tradeMessage);
|
||||
}
|
||||
else if (tradeMessage instanceof DepositTxPublishedMessage) {
|
||||
persistPendingTrades();
|
||||
takerAsSellerProtocolMap.get(tradeId).onDepositTxPublishedMessage((DepositTxPublishedMessage) tradeMessage);
|
||||
}
|
||||
else if (tradeMessage instanceof BankTransferInitedMessage) {
|
||||
takerAsSellerProtocolMap.get(tradeId).onBankTransferInitedMessage((BankTransferInitedMessage) tradeMessage);
|
||||
}
|
||||
else if (tradeMessage instanceof PayoutTxPublishedMessage) {
|
||||
offererAsBuyerProtocolMap.get(tradeId).onPayoutTxPublishedMessage((PayoutTxPublishedMessage) tradeMessage);
|
||||
else {
|
||||
log.error("tradeId from onIncomingTradeMessage is null. That must not happen.");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -156,6 +156,9 @@ public class BuyerAcceptsOfferProtocol {
|
||||
tradeId = trade.getId();
|
||||
offer = trade.getOffer();
|
||||
|
||||
checkNotNull(tradeId);
|
||||
checkNotNull(offer);
|
||||
|
||||
//TODO use first for now
|
||||
arbitratorPubKey = offer.getArbitrators().get(0).getPubKeyAsHex();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user