diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/dao/mem/MemoryPeerDaoImpl.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/dao/mem/MemoryPeerDaoImpl.java index d1d6841f7ee883760931ade740bc66a1103872c7..7e02285b85033e22394d74d80c15f5193f2d90b5 100644 --- a/duniter4j-core-client/src/main/java/org/duniter/core/client/dao/mem/MemoryPeerDaoImpl.java +++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/dao/mem/MemoryPeerDaoImpl.java @@ -160,7 +160,8 @@ public class MemoryPeerDaoImpl implements PeerDao { @Override public void updatePeersAsDown(String currencyId, long minUpTimeInMs, Collection<String> endpointApis) { - long firstDownTimeInMs = System.currentTimeMillis(); + long minUpTimeInS = Math.round(minUpTimeInMs / 1000); + long firstDownTimeInMs = Math.round(System.currentTimeMillis() / 1000); getPeersByCurrencyId(currencyId).stream() .filter(peer -> @@ -168,7 +169,7 @@ public class MemoryPeerDaoImpl implements PeerDao { && peer.getStats().isReacheable() && ( peer.getStats().getLastUpTime() == null - || peer.getStats().getLastUpTime() < minUpTimeInMs + || peer.getStats().getLastUpTime() < minUpTimeInS ) && (endpointApis == null || endpointApis.contains(peer.getApi())) ) diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peer.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peer.java index 7ba9430d22299b7edc93321c08f467f8115981d5..0cfb79eaef1a3f30cf0d371ad917f69a58a0923a 100644 --- a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peer.java +++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peer.java @@ -197,8 +197,7 @@ public class Peer implements LocalEntity<String>, Serializable { stats.setStatus(Peer.PeerStatus.UP); // FIXME: Duniter 1.7 return lastUpTime in ms. Check if this a bug or not - stats.setLastUpTime(System.currentTimeMillis()); - //stats.setLastUpTime((long)Math.round(System.currentTimeMillis() / 1000)); + stats.setLastUpTime((long)Math.round(System.currentTimeMillis() / 1000)); } else { stats.setStatus(Peer.PeerStatus.DOWN); @@ -683,7 +682,7 @@ public class Peer implements LocalEntity<String>, Serializable { } /** - * Last time the peer was UP (in millisecond) + * Last time the peer was UP (in second) * @return */ public Long getLastUpTime() { @@ -695,7 +694,7 @@ public class Peer implements LocalEntity<String>, Serializable { } /** - * First time the peer was DOWN (in millisecond) + * First time the peer was DOWN (in second) * @return */ public Long getFirstDownTime() { diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peers.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peers.java index 8e81c093297b2670b60bb97b3591a74b4cfd7f30..9988fc91179f1fc4a98f5cfe709e65918b8d4862 100644 --- a/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peers.java +++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/model/local/Peers.java @@ -262,8 +262,7 @@ public final class Peers { stats.setStatus(Peer.PeerStatus.UP); // FIXME: Duniter 1.7 return lastUpTime in ms. Check if this a bug or not - stats.setLastUpTime(System.currentTimeMillis()); - //stats.setLastUpTime((long)Math.round(System.currentTimeMillis() / 1000)); + stats.setLastUpTime((long)Math.round(System.currentTimeMillis() / 1000)); } else { stats.setStatus(Peer.PeerStatus.DOWN); diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/service/local/PeerServiceImpl.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/service/local/PeerServiceImpl.java index 41d69f0cd42fe45b1ef59905271cddf9a5a2b511..5f7ed03d7ce01e9a74fc9cd31406d853671cb2a0 100644 --- a/duniter4j-core-client/src/main/java/org/duniter/core/client/service/local/PeerServiceImpl.java +++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/service/local/PeerServiceImpl.java @@ -192,8 +192,7 @@ public class PeerServiceImpl implements PeerService, InitializingBean { } // FIXME: Duniter 1.7 return lastUpTime in ms. Check if this a bug or not - final long upTime = System.currentTimeMillis(); - //final long upTime = System.currentTimeMillis() / 1000; + final long upTime = System.currentTimeMillis() / 1000; peers.forEach(peer -> { // On each UP peers: set last UP time @@ -217,8 +216,8 @@ public class PeerServiceImpl implements PeerService, InitializingBean { int peerDownTimeoutMs = config.getPeerUpMaxAge(); // Mark old peers as DOWN if (peerDownTimeoutMs >0) { - long maxUpTimeInSec = Math.round((System.currentTimeMillis() - peerDownTimeoutMs*1000)); - updatePeersAsDown(currencyId, maxUpTimeInSec, filterApis); + long maxUpTimeInMs = System.currentTimeMillis() - peerDownTimeoutMs; + updatePeersAsDown(currencyId, maxUpTimeInMs, filterApis); } }