From a91822803f752044c9a9129afdab42659d165557 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Wed, 27 Jan 2016 01:56:56 +0100 Subject: [PATCH] Fix mailbox behaviour, renamings --- .../arbitration/ArbitratorManager.java | 16 ++--- .../bitsquare/arbitration/DisputeManager.java | 20 +++---- .../java/io/bitsquare/trade/TradeManager.java | 22 +++---- .../trade/offer/OpenOfferManager.java | 16 ++--- .../io/bitsquare/gui/main/MainViewModel.java | 6 +- .../ArbitratorRegistrationView.java | 4 +- .../ArbitratorRegistrationViewModel.java | 4 +- .../offer/createoffer/CreateOfferView.java | 2 +- .../createoffer/CreateOfferViewModel.java | 4 +- .../main/offer/offerbook/OfferBookView.java | 4 +- .../offer/offerbook/OfferBookViewModel.java | 4 +- .../portfolio/openoffer/OpenOffersView.java | 2 +- .../openoffer/OpenOffersViewModel.java | 4 +- .../pendingtrades/PendingTradesDataModel.java | 1 + .../pendingtrades/PendingTradesView.java | 17 +++++- .../pendingtrades/PendingTradesViewModel.java | 4 +- .../steps/ConfirmPaymentReceivedView.java | 2 +- .../pendingtrades/steps/StartPaymentView.java | 2 +- .../settings/network/NetworkSettingsView.java | 60 +++++++++---------- ...dyListener.java => BootstrapListener.java} | 4 +- .../java/io/bitsquare/p2p/P2PService.java | 21 +++---- .../io/bitsquare/p2p/P2PServiceListener.java | 2 +- .../test/java/io/bitsquare/p2p/TestUtils.java | 4 +- .../p2p/routing/PeerManagerTest.java | 8 +-- 24 files changed, 122 insertions(+), 111 deletions(-) rename network/src/main/java/io/bitsquare/p2p/{NetWorkReadyListener.java => BootstrapListener.java} (78%) diff --git a/core/src/main/java/io/bitsquare/arbitration/ArbitratorManager.java b/core/src/main/java/io/bitsquare/arbitration/ArbitratorManager.java index 296f66af4a..2749939a70 100644 --- a/core/src/main/java/io/bitsquare/arbitration/ArbitratorManager.java +++ b/core/src/main/java/io/bitsquare/arbitration/ArbitratorManager.java @@ -26,7 +26,7 @@ import io.bitsquare.common.crypto.KeyRing; import io.bitsquare.common.handlers.ErrorMessageHandler; import io.bitsquare.common.handlers.ResultHandler; import io.bitsquare.common.util.Utilities; -import io.bitsquare.p2p.NetWorkReadyListener; +import io.bitsquare.p2p.BootstrapListener; import io.bitsquare.p2p.NodeAddress; import io.bitsquare.p2p.P2PService; import io.bitsquare.p2p.storage.HashMapChangedListener; @@ -89,7 +89,7 @@ public class ArbitratorManager { )); private static final String publicKeyForTesting = "027a381b5333a56e1cc3d90d3a7d07f26509adf7029ed06fc997c656621f8da1ee"; private final boolean isDevTest; - private NetWorkReadyListener netWorkReadyListener; + private BootstrapListener bootstrapListener; private ScheduledThreadPoolExecutor republishArbitratorExecutor; @Inject @@ -121,14 +121,14 @@ public class ArbitratorManager { if (user.getRegisteredArbitrator() != null) { P2PService p2PService = arbitratorService.getP2PService(); - if (!p2PService.isNetworkReady()) { - netWorkReadyListener = new NetWorkReadyListener() { + if (!p2PService.isBootstrapped()) { + bootstrapListener = new BootstrapListener() { @Override - public void onBootstrapped() { + public void onBootstrapComplete() { republishArbitrator(); } }; - p2PService.addP2PServiceListener(netWorkReadyListener); + p2PService.addP2PServiceListener(bootstrapListener); } else { republishArbitrator(); @@ -144,8 +144,8 @@ public class ArbitratorManager { } private void republishArbitrator() { - if (netWorkReadyListener != null) - arbitratorService.getP2PService().removeP2PServiceListener(netWorkReadyListener); + if (bootstrapListener != null) + arbitratorService.getP2PService().removeP2PServiceListener(bootstrapListener); Arbitrator registeredArbitrator = user.getRegisteredArbitrator(); if (registeredArbitrator != null) { diff --git a/core/src/main/java/io/bitsquare/arbitration/DisputeManager.java b/core/src/main/java/io/bitsquare/arbitration/DisputeManager.java index 6569478073..b21bbe5ebd 100644 --- a/core/src/main/java/io/bitsquare/arbitration/DisputeManager.java +++ b/core/src/main/java/io/bitsquare/arbitration/DisputeManager.java @@ -27,8 +27,8 @@ import io.bitsquare.btc.exceptions.TransactionVerificationException; import io.bitsquare.btc.exceptions.WalletException; import io.bitsquare.common.crypto.KeyRing; import io.bitsquare.common.crypto.PubKeyRing; +import io.bitsquare.p2p.BootstrapListener; import io.bitsquare.p2p.Message; -import io.bitsquare.p2p.NetWorkReadyListener; import io.bitsquare.p2p.NodeAddress; import io.bitsquare.p2p.P2PService; import io.bitsquare.p2p.messaging.DecryptedMsgWithPubKey; @@ -68,7 +68,7 @@ public class DisputeManager { private final DisputeList disputes; transient private final ObservableList disputesObservableList; private final String disputeInfo; - private final NetWorkReadyListener netWorkReadyListener; + private final BootstrapListener bootstrapListener; private final CopyOnWriteArraySet decryptedMailboxMessageWithPubKeys = new CopyOnWriteArraySet<>(); private final CopyOnWriteArraySet decryptedDirectMessageWithPubKeys = new CopyOnWriteArraySet<>(); @@ -105,24 +105,25 @@ public class DisputeManager { "Please read more in detail about the dispute process in our wiki:\nhttps://github" + ".com/bitsquare/bitsquare/wiki/Dispute-process"; + // We get first the message handler called then the onBootstrapped p2PService.addDecryptedDirectMessageListener((decryptedMessageWithPubKey, senderAddress) -> { decryptedDirectMessageWithPubKeys.add(decryptedMessageWithPubKey); - if (p2PService.isNetworkReady()) + if (p2PService.isBootstrapped()) applyMessages(); }); p2PService.addDecryptedMailboxListener((decryptedMessageWithPubKey, senderAddress) -> { decryptedMailboxMessageWithPubKeys.add(decryptedMessageWithPubKey); - if (p2PService.isNetworkReady()) + if (p2PService.isBootstrapped()) applyMessages(); }); - netWorkReadyListener = new NetWorkReadyListener() { + bootstrapListener = new BootstrapListener() { @Override - public void onBootstrapped() { + public void onBootstrapComplete() { applyMessages(); } }; - p2PService.addP2PServiceListener(netWorkReadyListener); + p2PService.addP2PServiceListener(bootstrapListener); } private void applyMessages() { @@ -138,13 +139,12 @@ public class DisputeManager { log.debug("decryptedMessageWithPubKey.message " + message); if (message instanceof DisputeMessage) { dispatchMessage((DisputeMessage) message); - //TODO - //p2PService.removeEntryFromMailbox(decryptedMessageWithPubKey); + p2PService.removeEntryFromMailbox(decryptedMessageWithPubKey); } }); decryptedMailboxMessageWithPubKeys.clear(); - p2PService.removeP2PServiceListener(netWorkReadyListener); + p2PService.removeP2PServiceListener(bootstrapListener); } diff --git a/core/src/main/java/io/bitsquare/trade/TradeManager.java b/core/src/main/java/io/bitsquare/trade/TradeManager.java index 14cff001c9..ea6fed29f1 100644 --- a/core/src/main/java/io/bitsquare/trade/TradeManager.java +++ b/core/src/main/java/io/bitsquare/trade/TradeManager.java @@ -26,8 +26,8 @@ import io.bitsquare.btc.WalletService; import io.bitsquare.common.crypto.KeyRing; import io.bitsquare.common.handlers.FaultHandler; import io.bitsquare.common.handlers.ResultHandler; +import io.bitsquare.p2p.BootstrapListener; import io.bitsquare.p2p.Message; -import io.bitsquare.p2p.NetWorkReadyListener; import io.bitsquare.p2p.NodeAddress; import io.bitsquare.p2p.P2PService; import io.bitsquare.p2p.messaging.DecryptedDirectMessageListener; @@ -80,7 +80,7 @@ public class TradeManager { private final Storage> tradableListStorage; private final TradableList trades; private final BooleanProperty pendingTradesInitialized = new SimpleBooleanProperty(); - private final NetWorkReadyListener netWorkReadyListener; + private final BootstrapListener bootstrapListener; /////////////////////////////////////////////////////////////////////////////////////////// @@ -141,21 +141,23 @@ public class TradeManager { log.trace("Received TradeMessage: " + message); String tradeId = ((TradeMessage) message).tradeId; Optional tradeOptional = trades.stream().filter(e -> e.getId().equals(tradeId)).findAny(); + // The mailbox message will be removed inside the tasks after they are processed successfully if (tradeOptional.isPresent()) tradeOptional.get().setMailboxMessage(decryptedMsgWithPubKey); } } }); - netWorkReadyListener = new NetWorkReadyListener() { + bootstrapListener = new BootstrapListener() { @Override - public void onBootstrapped() { + public void onBootstrapComplete() { Log.traceCall("onNetworkReady"); // Get called after onMailboxMessageAdded from initial data request + // The mailbox message will be removed inside the tasks after they are processed successfully initPendingTrades(); } }; - p2PService.addP2PServiceListener(netWorkReadyListener); + p2PService.addP2PServiceListener(bootstrapListener); } @@ -165,7 +167,7 @@ public class TradeManager { private void initPendingTrades() { Log.traceCall(); - if (netWorkReadyListener != null) p2PService.removeP2PServiceListener(netWorkReadyListener); + p2PService.removeP2PServiceListener(bootstrapListener); //List failedTrades = new ArrayList<>(); for (Trade trade : trades) { @@ -180,13 +182,7 @@ public class TradeManager { trade.updateDepositTxFromWallet(tradeWalletService); initTrade(trade); - // after network is ready we remove mailbox messages. - DecryptedMsgWithPubKey mailboxMessage = trade.getMailboxMessage(); - if (mailboxMessage != null) { - log.trace("initPendingTrades/removeEntryFromMailbox mailboxMessage = " + mailboxMessage); - p2PService.removeEntryFromMailbox(mailboxMessage); - trade.setMailboxMessage(null); - } + // } } pendingTradesInitialized.set(true); diff --git a/core/src/main/java/io/bitsquare/trade/offer/OpenOfferManager.java b/core/src/main/java/io/bitsquare/trade/offer/OpenOfferManager.java index 86059510de..e81a80c24e 100644 --- a/core/src/main/java/io/bitsquare/trade/offer/OpenOfferManager.java +++ b/core/src/main/java/io/bitsquare/trade/offer/OpenOfferManager.java @@ -24,8 +24,8 @@ import io.bitsquare.common.UserThread; import io.bitsquare.common.crypto.KeyRing; import io.bitsquare.common.handlers.ErrorMessageHandler; import io.bitsquare.common.handlers.ResultHandler; +import io.bitsquare.p2p.BootstrapListener; import io.bitsquare.p2p.Message; -import io.bitsquare.p2p.NetWorkReadyListener; import io.bitsquare.p2p.NodeAddress; import io.bitsquare.p2p.P2PService; import io.bitsquare.p2p.messaging.SendDirectMessageListener; @@ -67,7 +67,7 @@ public class OpenOfferManager { private final TradableList openOffers; private final Storage> openOffersStorage; private boolean shutDownRequested; - private NetWorkReadyListener netWorkReadyListener; + private BootstrapListener bootstrapListener; private final Timer timer = new Timer(); /////////////////////////////////////////////////////////////////////////////////////////// @@ -126,14 +126,14 @@ public class OpenOfferManager { // Before the TTL is reached we re-publish our offers // If offer removal at shutdown fails we don't want to have long term dangling dead offers, so we set // TTL quite short and use re-publish as strategy. Offerers need to be online anyway. - if (!p2PService.isNetworkReady()) { - netWorkReadyListener = new NetWorkReadyListener() { + if (!p2PService.isBootstrapped()) { + bootstrapListener = new BootstrapListener() { @Override - public void onBootstrapped() { + public void onBootstrapComplete() { startRePublishThread(); } }; - p2PService.addP2PServiceListener(netWorkReadyListener); + p2PService.addP2PServiceListener(bootstrapListener); } else { startRePublishThread(); @@ -141,8 +141,8 @@ public class OpenOfferManager { } private void startRePublishThread() { - if (netWorkReadyListener != null) - p2PService.removeP2PServiceListener(netWorkReadyListener); + if (bootstrapListener != null) + p2PService.removeP2PServiceListener(bootstrapListener); long period = (long) (Offer.TTL * 0.8); // republish sufficiently before offer would expire TimerTask timerTask = new TimerTask() { diff --git a/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java index 322d8b32a3..2904d84c8a 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java @@ -239,7 +239,7 @@ public class MainViewModel implements ViewModel { } @Override - public void onBootstrapped() { + public void onBootstrapComplete() { updateP2pNetworkInfoWithPeersChanged(p2PService.getNumConnectedPeers().get()); splashP2PNetworkProgress.set(1); } @@ -566,14 +566,14 @@ public class MainViewModel implements ViewModel { if (!trade.isHalfTradePeriodReachedWarningDisplayed()) { new Popup().warning("Your trade with ID " + trade.getShortId() + " has reached the half of the max. allowed trading period and " + - "is still not completed.\nPlease check your trade state at Portfolio/open trades for further information.").show(); + "is still not completed.\nPlease check your trade state at \"Portfolio/Open trades\" for further information.").show(); trade.setHalfTradePeriodReachedWarningDisplayed(true); } break; case TRADE_PERIOD_OVER: if (!trade.isTradePeriodOverWarningDisplayed()) { new Popup().warning("Your trade with ID " + trade.getShortId() + " has reached the max. allowed trading period and is " + - "not completed.\nPlease check your trade at Portfolio/Open trades for contacting the arbitrator.").show(); + "not completed.\nPlease check your trade at \"Portfolio/Open trades\" for contacting the arbitrator.").show(); trade.setTradePeriodOverWarningDisplayed(true); } break; diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/arbitratorregistration/ArbitratorRegistrationView.java b/gui/src/main/java/io/bitsquare/gui/main/account/arbitratorregistration/ArbitratorRegistrationView.java index 21c27cc0de..fd1352e711 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/account/arbitratorregistration/ArbitratorRegistrationView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/account/arbitratorregistration/ArbitratorRegistrationView.java @@ -219,7 +219,7 @@ public class ArbitratorRegistrationView extends ActivatableViewAndModel new Popup().information("You have successfully removed your arbitrator from the P2P network.").show(), (errorMessage) -> new Popup().error("Could not remove arbitrator.\nError message: " + errorMessage).show()); @@ -230,7 +230,7 @@ public class ArbitratorRegistrationView extends ActivatableViewAndModel new Popup().information("You have successfully registered your arbitrator to the P2P network.").show(), (errorMessage) -> new Popup().error("Could not register arbitrator.\nError message: " + errorMessage).show()); diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/arbitratorregistration/ArbitratorRegistrationViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/arbitratorregistration/ArbitratorRegistrationViewModel.java index 1617303c1c..9c0732f939 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/account/arbitratorregistration/ArbitratorRegistrationViewModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/account/arbitratorregistration/ArbitratorRegistrationViewModel.java @@ -183,7 +183,7 @@ class ArbitratorRegistrationViewModel extends ActivatableViewModel { revokeButtonDisabled.set(!allDataValid || myArbitratorProperty.get() == null); } - boolean isNetworkReady() { - return p2PService.isNetworkReady(); + boolean isBootstrapped() { + return p2PService.isBootstrapped(); } } diff --git a/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferView.java b/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferView.java index 00aa6c5902..c4a02dcb60 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferView.java @@ -199,7 +199,7 @@ public class CreateOfferView extends ActivatableViewAndModel model.onPlaceOffer(o)).show(offer); diff --git a/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferViewModel.java index 397070c7b3..9033ae5fa2 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferViewModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferViewModel.java @@ -485,8 +485,8 @@ class CreateOfferViewModel extends ActivatableWithDataModel return formatter.formatDateTime(item.getOffer().getDate()); } - boolean isNetworkReady() { - return p2PService.isNetworkReady(); + boolean isBootstrapped() { + return p2PService.isBootstrapped(); } } diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesDataModel.java index 2d6ad8bad3..9f77cbccc9 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesDataModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesDataModel.java @@ -114,6 +114,7 @@ public class PendingTradesDataModel extends ActivatableDataModel { } private void onListChanged() { + Log.traceCall(); list.clear(); list.addAll(tradeManager.getTrades().stream().map(PendingTradesListItem::new).collect(Collectors.toList())); diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.java index c4a800fe8f..5350350fe4 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.java @@ -26,6 +26,7 @@ import io.bitsquare.trade.Trade; import javafx.beans.property.ReadOnlyBooleanProperty; import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.beans.value.ChangeListener; +import javafx.collections.ListChangeListener; import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.scene.Scene; @@ -71,6 +72,7 @@ public class PendingTradesView extends ActivatableViewAndModel currentTradeChangeListener; private EventHandler keyEventEventHandler; private Scene scene; + private ListChangeListener listChangeListener; /////////////////////////////////////////////////////////////////////////////////////////// @@ -101,6 +103,7 @@ public class PendingTradesView extends ActivatableViewAndModel updateSelectedItem(); appFocusChangeListener = (observable, oldValue, newValue) -> { if (newValue && model.getSelectedItem() != null) { @@ -134,6 +137,15 @@ public class PendingTradesView extends ActivatableViewAndModel table.getFocusModel().focus(index)); }); } - - scene.addEventHandler(KeyEvent.KEY_RELEASED, keyEventEventHandler); } @Override protected void deactivate() { table.getSelectionModel().selectedItemProperty().removeListener(selectedItemChangeListener); + + model.getList().removeListener(listChangeListener); + if (model.currentTrade() != null) model.currentTrade().removeListener(currentTradeChangeListener); diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java index 53957b9286..71235c724e 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java @@ -221,8 +221,8 @@ public class PendingTradesViewModel extends ActivatableWithDataModel connectionNodeAddressListener; private Subscription networkReadySubscription; + private boolean isBootstrapped; /////////////////////////////////////////////////////////////////////////////////////////// @@ -266,7 +267,8 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis "seedNodeOfPreliminaryDataRequest must be present"); peerExchangeManager.requestReportedPeers(seedNodeOfPreliminaryDataRequest.get()); - p2pServiceListeners.stream().forEach(P2PServiceListener::onBootstrapped); + isBootstrapped = true; + p2pServiceListeners.stream().forEach(P2PServiceListener::onBootstrapComplete); } @Override @@ -377,7 +379,7 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis SendDirectMessageListener sendDirectMessageListener) { Log.traceCall(); checkNotNull(peerNodeAddress, "PeerAddress must not be null (sendEncryptedDirectMessage)"); - if (isNetworkReady()) { + if (isBootstrapped()) { doSendEncryptedDirectMessage(peerNodeAddress, pubKeyRing, message, sendDirectMessageListener); } else { throw new NetworkNotReadyException(); @@ -473,7 +475,7 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis checkArgument(optionalEncryptionService.isPresent(), "EncryptionService not set. Seems that is called on a seed node which must not happen."); - if (isNetworkReady()) { + if (isBootstrapped()) { if (!networkNode.getAllConnections().isEmpty()) { try { log.info("\n\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n" + @@ -527,7 +529,7 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis checkArgument(optionalKeyRing.isPresent(), "keyRing not set. Seems that is called on a seed node which must not happen."); - if (isNetworkReady()) { + if (isBootstrapped()) { if (!networkNode.getAllConnections().isEmpty()) { try { ProtectedMailboxData protectedMailboxData = p2PDataStorage.getMailboxDataWithSignedSeqNr( @@ -571,7 +573,7 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis public void removeEntryFromMailbox(DecryptedMsgWithPubKey decryptedMsgWithPubKey) { Log.traceCall(); checkArgument(optionalKeyRing.isPresent(), "keyRing not set. Seems that is called on a seed node which must not happen."); - if (isNetworkReady()) { + if (isBootstrapped()) { if (mailboxMap.containsKey(decryptedMsgWithPubKey)) { ProtectedMailboxData mailboxData = mailboxMap.get(decryptedMsgWithPubKey); if (mailboxData != null && mailboxData.expirablePayload instanceof ExpirableMailboxPayload) { @@ -620,7 +622,7 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis private boolean doAddData(ExpirablePayload expirablePayload, boolean rePublish) { Log.traceCall(); checkArgument(optionalKeyRing.isPresent(), "keyRing not set. Seems that is called on a seed node which must not happen."); - if (isNetworkReady()) { + if (isBootstrapped()) { try { ProtectedData protectedData = p2PDataStorage.getDataWithSignedSeqNr(expirablePayload, optionalKeyRing.get().getSignatureKeyPair()); if (rePublish) @@ -639,7 +641,7 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis public boolean removeData(ExpirablePayload expirablePayload) { Log.traceCall(); checkArgument(optionalKeyRing.isPresent(), "keyRing not set. Seems that is called on a seed node which must not happen."); - if (isNetworkReady()) { + if (isBootstrapped()) { try { ProtectedData protectedData = p2PDataStorage.getDataWithSignedSeqNr(expirablePayload, optionalKeyRing.get().getSignatureKeyPair()); return p2PDataStorage.remove(protectedData, networkNode.getNodeAddress()); @@ -686,8 +688,8 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis // Getters /////////////////////////////////////////////////////////////////////////////////////////// - public boolean isNetworkReady() { - return hiddenServicePublished.get() && preliminaryDataReceived.get(); + public boolean isBootstrapped() { + return isBootstrapped; } public NetworkNode getNetworkNode() { @@ -710,7 +712,6 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis return p2PDataStorage.getMap(); } - /////////////////////////////////////////////////////////////////////////////////////////// // Private /////////////////////////////////////////////////////////////////////////////////////////// diff --git a/network/src/main/java/io/bitsquare/p2p/P2PServiceListener.java b/network/src/main/java/io/bitsquare/p2p/P2PServiceListener.java index 31119d7cd5..2f18ab19b9 100644 --- a/network/src/main/java/io/bitsquare/p2p/P2PServiceListener.java +++ b/network/src/main/java/io/bitsquare/p2p/P2PServiceListener.java @@ -11,5 +11,5 @@ public interface P2PServiceListener extends SetupListener { void onNoPeersAvailable(); - void onBootstrapped(); + void onBootstrapComplete(); } diff --git a/network/src/test/java/io/bitsquare/p2p/TestUtils.java b/network/src/test/java/io/bitsquare/p2p/TestUtils.java index 68c0406f88..a5cf62164c 100644 --- a/network/src/test/java/io/bitsquare/p2p/TestUtils.java +++ b/network/src/test/java/io/bitsquare/p2p/TestUtils.java @@ -95,7 +95,7 @@ public class TestUtils { } @Override - public void onBootstrapped() { + public void onBootstrapComplete() { } @Override @@ -148,7 +148,7 @@ public class TestUtils { } @Override - public void onBootstrapped() { + public void onBootstrapComplete() { latch.countDown(); } diff --git a/network/src/test/java/io/bitsquare/p2p/routing/PeerManagerTest.java b/network/src/test/java/io/bitsquare/p2p/routing/PeerManagerTest.java index 25312cc4a7..96ec47e6ca 100644 --- a/network/src/test/java/io/bitsquare/p2p/routing/PeerManagerTest.java +++ b/network/src/test/java/io/bitsquare/p2p/routing/PeerManagerTest.java @@ -104,7 +104,7 @@ public class PeerManagerTest { } @Override - public void onBootstrapped() { + public void onBootstrapComplete() { } @Override @@ -155,7 +155,7 @@ public class PeerManagerTest { } @Override - public void onBootstrapped() { + public void onBootstrapComplete() { latch.countDown(); } @@ -193,7 +193,7 @@ public class PeerManagerTest { } @Override - public void onBootstrapped() { + public void onBootstrapComplete() { latch.countDown(); } @@ -430,7 +430,7 @@ public class PeerManagerTest { } @Override - public void onBootstrapped() { + public void onBootstrapComplete() { } @Override