From b4cb1dcd6d3b5647c3323bb268683821ed1f45a2 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Tue, 28 Aug 2018 19:48:34 +0200 Subject: [PATCH] Retry delayedRemoveEntryFromMailbox at error Retry delayedRemoveEntryFromMailbox call if NetworkNotReadyException is thrown with a 60 sec. delay. Should fix issue: https://github.com/bisq-network/bisq-desktop/issues/1645 --- src/main/java/bisq/network/p2p/P2PService.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/bisq/network/p2p/P2PService.java b/src/main/java/bisq/network/p2p/P2PService.java index 9e0f483..b0d7f26 100644 --- a/src/main/java/bisq/network/p2p/P2PService.java +++ b/src/main/java/bisq/network/p2p/P2PService.java @@ -740,7 +740,17 @@ public void removeEntryFromMailbox(DecryptedMessageWithPubKey decryptedMessageWi // at the P2PService layer. // Though we have to check in the client classes to not apply the same message again as there is no guarantee // when we would get a message again from the network. - UserThread.runAfter(() -> delayedRemoveEntryFromMailbox(decryptedMessageWithPubKey), 2); + try { + UserThread.runAfter(() -> delayedRemoveEntryFromMailbox(decryptedMessageWithPubKey), 2); + } catch (NetworkNotReadyException t) { + // If we called too early it might throw a NetworkNotReadyException. We will try again + try { + UserThread.runAfter(() -> delayedRemoveEntryFromMailbox(decryptedMessageWithPubKey), 60); + } catch (NetworkNotReadyException ignore) { + log.warn("We tried to call delayedRemoveEntryFromMailbox 60 sec. after we received an " + + "NetworkNotReadyException but it failed again. We give up here."); + } + } } private void delayedRemoveEntryFromMailbox(DecryptedMessageWithPubKey decryptedMessageWithPubKey) {