From db128c68154e4b6f8489077eda7e8b98686dffa8 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Thu, 14 Jan 2016 11:40:06 +0100 Subject: [PATCH] fix wrong timer behaviour --- .../io/bitsquare/arbitration/ArbitratorManager.java | 5 +++-- .../io/bitsquare/p2p/peers/MaintenanceManager.java | 4 ++-- .../io/bitsquare/p2p/peers/PeerExchangeManager.java | 2 +- .../java/io/bitsquare/p2p/peers/PeerManager.java | 13 ++++++++----- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/io/bitsquare/arbitration/ArbitratorManager.java b/core/src/main/java/io/bitsquare/arbitration/ArbitratorManager.java index dc2529463b..034b6d252e 100644 --- a/core/src/main/java/io/bitsquare/arbitration/ArbitratorManager.java +++ b/core/src/main/java/io/bitsquare/arbitration/ArbitratorManager.java @@ -135,8 +135,9 @@ public class ArbitratorManager { } // re-publish periodically - republishArbitratorExecutor = Utilities.getScheduledThreadPoolExecutor("", 1, 5, 5); - republishArbitratorExecutor.schedule(() -> republishArbitrator(), Arbitrator.TTL / 2, TimeUnit.MILLISECONDS); + republishArbitratorExecutor = Utilities.getScheduledThreadPoolExecutor("republishArbitrator", 1, 5, 5); + long delay = Arbitrator.TTL / 2; + republishArbitratorExecutor.scheduleAtFixedRate(() -> republishArbitrator(), delay, delay, TimeUnit.MILLISECONDS); } applyArbitrators(); diff --git a/network/src/main/java/io/bitsquare/p2p/peers/MaintenanceManager.java b/network/src/main/java/io/bitsquare/p2p/peers/MaintenanceManager.java index 28948e11e3..7861551275 100644 --- a/network/src/main/java/io/bitsquare/p2p/peers/MaintenanceManager.java +++ b/network/src/main/java/io/bitsquare/p2p/peers/MaintenanceManager.java @@ -53,9 +53,9 @@ public class MaintenanceManager implements MessageListener { networkNode.addMessageListener(this); executor = Utilities.getScheduledThreadPoolExecutor("MaintenanceManager", 1, 10, 5); - executor.schedule(() -> { + executor.scheduleAtFixedRate(() -> { UserThread.execute(() -> pingPeers()); - }, 5, TimeUnit.MINUTES); + }, 5, 5, TimeUnit.MINUTES); } public void shutDown() { diff --git a/network/src/main/java/io/bitsquare/p2p/peers/PeerExchangeManager.java b/network/src/main/java/io/bitsquare/p2p/peers/PeerExchangeManager.java index 52cb3adcbd..4f630fc9d1 100644 --- a/network/src/main/java/io/bitsquare/p2p/peers/PeerExchangeManager.java +++ b/network/src/main/java/io/bitsquare/p2p/peers/PeerExchangeManager.java @@ -60,7 +60,7 @@ public class PeerExchangeManager implements MessageListener { networkNode.addMessageListener(this); executor = Utilities.getScheduledThreadPoolExecutor("PeerExchangeManager", 1, 10, 5); - executor.schedule(() -> UserThread.execute(() -> trySendGetPeersRequest()), 4, TimeUnit.MINUTES); + executor.scheduleAtFixedRate(() -> UserThread.execute(() -> trySendGetPeersRequest()), 4, 4, TimeUnit.MINUTES); } public void shutDown() { diff --git a/network/src/main/java/io/bitsquare/p2p/peers/PeerManager.java b/network/src/main/java/io/bitsquare/p2p/peers/PeerManager.java index 114cd05056..e50f317ea8 100644 --- a/network/src/main/java/io/bitsquare/p2p/peers/PeerManager.java +++ b/network/src/main/java/io/bitsquare/p2p/peers/PeerManager.java @@ -118,7 +118,7 @@ public class PeerManager implements MessageListener, ConnectionListener { @Override public void onDisconnect(Reason reason, Connection connection) { - log.debug("onDisconnect connection=" + connection + " / reason=" + reason); + log.debug("onDisconnect reason=" + reason + " / connection=" + connection); connection.getPeerAddressOptional().ifPresent(peerAddress -> { // We only remove the peer from the authenticationHandshakes and the reportedPeers @@ -445,8 +445,8 @@ public class PeerManager implements MessageListener, ConnectionListener { } protected void startCheckSeedNodeConnectionTask() { - checkSeedNodeConnectionExecutor.schedule(() -> UserThread.execute(() - -> checkSeedNodeConnections()), 2, TimeUnit.MINUTES); + checkSeedNodeConnectionExecutor.scheduleAtFixedRate(() -> UserThread.execute(() + -> checkSeedNodeConnections()), 2, 2, TimeUnit.MINUTES); } // We want to stay connected to at least one seed node to avoid to get isolated with a group of peers @@ -530,8 +530,8 @@ public class PeerManager implements MessageListener, ConnectionListener { authenticateToRemainingSeedNode(); } else if (!persistedPeers.isEmpty()) { log.info("We don't have seed nodes or reported peers available. " + - "We will add 5 peers from our persistedReportedPeers to our reportedPeers list and " + - "try authenticateToRemainingReportedPeer again."); + "We will try to add 5 peers from our persistedPeers to our reportedPeers list and " + + "try authenticateToRemainingReportedPeer again. All persistedPeers=" + persistedPeers); List list = new ArrayList<>(persistedPeers); authenticationHandshakes.keySet().stream().forEach(e -> list.remove(new ReportedPeer(e))); @@ -543,7 +543,10 @@ public class PeerManager implements MessageListener, ConnectionListener { persistedPeers.remove(reportedPeer); reportedPeers.add(reportedPeer); } + log.info("We have added some of our persistedPeers to our reportedPeers. reportedPeers=" + reportedPeers); authenticateToRemainingReportedPeer(); + } else { + log.info("We don't have any persistedPeers available which are not authenticating or authenticated."); } } else { log.info("We don't have seed nodes, reported peers nor persistedReportedPeers available. " +