diff --git a/router/java/src/net/i2p/router/client/RequestLeaseSetJob.java b/router/java/src/net/i2p/router/client/RequestLeaseSetJob.java index c4e8e8d1b1b0cfe980f89aca56080e8e1426c007..51d3a304c907f4c5f91e3ff21b604d650f72b495 100644 --- a/router/java/src/net/i2p/router/client/RequestLeaseSetJob.java +++ b/router/java/src/net/i2p/router/client/RequestLeaseSetJob.java @@ -54,7 +54,14 @@ class RequestLeaseSetJob extends JobImpl { if (_runner.isDead()) return; RequestLeaseSetMessage msg = new RequestLeaseSetMessage(); - Date end = new Date(_requestState.getRequested().getEarliestLeaseDate()); + long endTime = _requestState.getRequested().getEarliestLeaseDate(); + // Add a small number of ms (0-300) that increases as we approach the expire time. + // Since the earliest date functions as a version number, + // this will force the floodfill to flood each new version; + // otherwise it won't if the earliest time hasn't changed. + long fudge = 300 - ((endTime - getContext().clock().now()) / 2000); + endTime += fudge; + Date end = new Date(endTime); msg.setEndDate(end); msg.setSessionId(_runner.getSessionId());