diff --git a/ethereumj-core/src/main/java/org/ethereum/net/rlpx/discover/NodeHandler.java b/ethereumj-core/src/main/java/org/ethereum/net/rlpx/discover/NodeHandler.java index c5166eb52d..69ce8e1471 100644 --- a/ethereumj-core/src/main/java/org/ethereum/net/rlpx/discover/NodeHandler.java +++ b/ethereumj-core/src/main/java/org/ethereum/net/rlpx/discover/NodeHandler.java @@ -198,6 +198,7 @@ private void changeState(State newState) { replaceCandidate.changeState(State.Active); } else if (oldState == State.Alive) { // ok the old node was better, nothing to do here + nodeManager.table.touchNode(node); } else { // wrong state transition } @@ -209,7 +210,10 @@ private void changeState(State newState) { sendPing(); } state = newState; - stateChanged(oldState, newState); + if (newState == State.Active) { + stateChanged(oldState, newState); + } + } protected void stateChanged(State oldState, State newState) {