diff --git a/core/src/main/java/bisq/core/payment/PaymentAccount.java b/core/src/main/java/bisq/core/payment/PaymentAccount.java index 1e481e44583..caafed4611f 100644 --- a/core/src/main/java/bisq/core/payment/PaymentAccount.java +++ b/core/src/main/java/bisq/core/payment/PaymentAccount.java @@ -110,18 +110,23 @@ public static PaymentAccount fromProto(protobuf.PaymentAccount proto, CoreProtoR // We cannot remove it in the stream as it would cause a concurrentModificationException ngnTwOptional.ifPresent(tradeCurrencies::remove); - PaymentAccount account = PaymentAccountFactory.getPaymentAccount(PaymentMethod.getPaymentMethodById(paymentMethodId)); - account.getTradeCurrencies().clear(); - account.setId(proto.getId()); - account.setCreationDate(proto.getCreationDate()); - account.setAccountName(proto.getAccountName()); - account.getTradeCurrencies().addAll(tradeCurrencies); - account.setPaymentAccountPayload(coreProtoResolver.fromProto(proto.getPaymentAccountPayload())); - - if (proto.hasSelectedTradeCurrency()) - account.setSelectedTradeCurrency(TradeCurrency.fromProto(proto.getSelectedTradeCurrency())); - - return account; + try { + PaymentAccount account = PaymentAccountFactory.getPaymentAccount(PaymentMethod.getPaymentMethodById(paymentMethodId)); + account.getTradeCurrencies().clear(); + account.setId(proto.getId()); + account.setCreationDate(proto.getCreationDate()); + account.setAccountName(proto.getAccountName()); + account.getTradeCurrencies().addAll(tradeCurrencies); + account.setPaymentAccountPayload(coreProtoResolver.fromProto(proto.getPaymentAccountPayload())); + + if (proto.hasSelectedTradeCurrency()) + account.setSelectedTradeCurrency(TradeCurrency.fromProto(proto.getSelectedTradeCurrency())); + + return account; + } catch (RuntimeException e) { + log.warn("Could not load account: {}, exception: {}", paymentMethodId, e.toString()); + return null; + } } diff --git a/core/src/main/java/bisq/core/user/UserPayload.java b/core/src/main/java/bisq/core/user/UserPayload.java index 3f2a892f066..1946f945a77 100644 --- a/core/src/main/java/bisq/core/user/UserPayload.java +++ b/core/src/main/java/bisq/core/user/UserPayload.java @@ -33,6 +33,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -132,6 +133,7 @@ public static UserPayload fromProto(protobuf.UserPayload proto, CoreProtoResolve ProtoUtil.stringOrNullFromProto(proto.getAccountId()), proto.getPaymentAccountsList().isEmpty() ? new HashSet<>() : new HashSet<>(proto.getPaymentAccountsList().stream() .map(e -> PaymentAccount.fromProto(e, coreProtoResolver)) + .filter(Objects::nonNull) .collect(Collectors.toSet())), proto.hasCurrentPaymentAccount() ? PaymentAccount.fromProto(proto.getCurrentPaymentAccount(), coreProtoResolver) : null, proto.getAcceptedLanguageLocaleCodesList().isEmpty() ? new ArrayList<>() : new ArrayList<>(proto.getAcceptedLanguageLocaleCodesList()),