diff --git a/core/src/main/java/io/bitsquare/arbitration/ArbitratorService.java b/core/src/main/java/io/bitsquare/arbitration/ArbitratorService.java index 26d4d55139..ab2388bfde 100644 --- a/core/src/main/java/io/bitsquare/arbitration/ArbitratorService.java +++ b/core/src/main/java/io/bitsquare/arbitration/ArbitratorService.java @@ -61,7 +61,7 @@ public class ArbitratorService { log.debug("addArbitrator arbitrator.hashCode() " + arbitrator.hashCode()); boolean result = p2PService.addData(arbitrator); if (result) { - log.trace("Add arbitrator to network was successful. Arbitrator = " + arbitrator); + log.trace("Add arbitrator to network was successful. Arbitrator.hashCode() = " + arbitrator.hashCode()); resultHandler.handleResult(); } else { errorMessageHandler.handleErrorMessage("Add arbitrator failed"); @@ -71,7 +71,7 @@ public class ArbitratorService { public void removeArbitrator(Arbitrator arbitrator, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) { log.debug("removeArbitrator arbitrator.hashCode() " + arbitrator.hashCode()); if (p2PService.removeData(arbitrator)) { - log.trace("Remove arbitrator from network was successful. Arbitrator = " + arbitrator); + log.trace("Remove arbitrator from network was successful. Arbitrator.hashCode() = " + arbitrator.hashCode()); resultHandler.handleResult(); } else { errorMessageHandler.handleErrorMessage("Remove arbitrator failed"); 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 54c3bda03d..ec5fd571d1 100644 --- a/core/src/main/java/io/bitsquare/trade/offer/OpenOfferManager.java +++ b/core/src/main/java/io/bitsquare/trade/offer/OpenOfferManager.java @@ -258,7 +258,7 @@ public class OpenOfferManager { private void startRefreshOffersThread() { // refresh sufficiently before offer would expire - refreshOffersPeriod = (long) (Offer.TTL * 0.7); + refreshOffersPeriod = (long) (Offer.TTL * 0.5); refreshOffersTimer = UserThread.runPeriodically(OpenOfferManager.this::refreshOffers, refreshOffersPeriod, TimeUnit.MILLISECONDS); } diff --git a/network/src/main/java/io/bitsquare/p2p/P2PService.java b/network/src/main/java/io/bitsquare/p2p/P2PService.java index 0ba7157973..2604118e73 100644 --- a/network/src/main/java/io/bitsquare/p2p/P2PService.java +++ b/network/src/main/java/io/bitsquare/p2p/P2PService.java @@ -274,6 +274,8 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis isBootstrapped = true; p2pServiceListeners.stream().forEach(P2PServiceListener::onBootstrapComplete); + + p2PDataStorage.onBootstrapComplete(); } @Override diff --git a/network/src/main/java/io/bitsquare/p2p/storage/P2PDataStorage.java b/network/src/main/java/io/bitsquare/p2p/storage/P2PDataStorage.java index 5f1de4f392..89ea636421 100644 --- a/network/src/main/java/io/bitsquare/p2p/storage/P2PDataStorage.java +++ b/network/src/main/java/io/bitsquare/p2p/storage/P2PDataStorage.java @@ -61,14 +61,12 @@ public class P2PDataStorage implements MessageListener, ConnectionListener { storage = new Storage<>(storageDir); removeExpiredEntriesExecutor = Utilities.getScheduledThreadPoolExecutor("removeExpiredEntries", 1, 10, 5); - init(); - } - - private void init() { HashMap persisted = storage.initAndGetPersisted("SequenceNumberMap"); if (persisted != null) sequenceNumberMap = getPurgedSequenceNumberMap(persisted); + } + public void onBootstrapComplete() { removeExpiredEntriesExecutor.scheduleAtFixedRate(() -> UserThread.execute(() -> { log.trace("removeExpiredEntries"); // The moment when an object becomes expired will not be synchronous in the network and we could @@ -84,7 +82,7 @@ public class P2PDataStorage implements MessageListener, ConnectionListener { ByteArray hashOfPayload = entry.getKey(); ProtectedData protectedData = map.get(hashOfPayload); toRemoveSet.add(protectedData); - log.trace("remove protectedData:\n\t" + protectedData); + log.error("remove protectedData:\n\t" + protectedData); map.remove(hashOfPayload); }); @@ -240,6 +238,7 @@ public class P2PDataStorage implements MessageListener, ConnectionListener { checkIfStoredDataPubKeyMatchesNewDataPubKey(ownerPubKey, hashOfPayload); if (result) { + log.error("refreshDate called for storedData:\n\t" + StringUtils.abbreviate(storedData.toString(), 100)); storedData.refreshDate(); sequenceNumberMap.put(hashOfPayload, new MapValue(sequenceNumber, System.currentTimeMillis()));