diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java index aafd45e7e098f0a88412c320f0bf59c6ad9f0453..6ff84f68ce09cdfcea58fb58c6ebc62021ff783e 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java @@ -490,8 +490,13 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade { } if (!_context.clientManager().shouldPublishLeaseSet(h)) return; - if (_context.router().gracefulShutdownInProgress()) - return; + // If we're exiting, don't publish. + // If we're restarting, keep publishing to minimize the downtime. + if (_context.router().gracefulShutdownInProgress()) { + int code = _context.router().scheduledGracefulExitCode(); + if (code == Router.EXIT_GRACEFUL || code == Router.EXIT_HARD) + return; + } RepublishLeaseSetJob j = null; synchronized (_publishingLeaseSets) {