diff --git a/router/java/src/net/i2p/router/message/SendTunnelMessageJob.java b/router/java/src/net/i2p/router/message/SendTunnelMessageJob.java index 34d64ef9c2ee2573b521bc488095edba210af57a..104298acb790b0ef4ddd560d07ecac664bb1b247 100644 --- a/router/java/src/net/i2p/router/message/SendTunnelMessageJob.java +++ b/router/java/src/net/i2p/router/message/SendTunnelMessageJob.java @@ -462,10 +462,18 @@ public class SendTunnelMessageJob extends JobImpl { //_log.info("Fudging the message send so it expires in the fudge factor..."); //} - if (_expiration - 10*1000 < now) { + long timeLeft = _expiration - now; + + if (timeLeft < 10*1000) { if (_log.shouldLog(Log.WARN)) _log.warn("Why are we trying to send a " + _message.getClass().getName() + " message with " + (_expiration-now) + "ms left?", getAddedBy()); + if (timeLeft < 0) { + _log.error("Timed out honoring request to send a " + _message.getClass().getName() + + " message remotely [" + _message.getUniqueId() + "] expired " + + (0-timeLeft) + "ms ago"); + return; + } } String bodyType = _message.getClass().getName(); @@ -475,7 +483,7 @@ public class SendTunnelMessageJob extends JobImpl { // don't specify a selector, since createFakeOutNetMessage already does that SendMessageDirectJob j = new SendMessageDirectJob(getContext(), msg, _destRouter, _onSend, _onReply, _onFailure, - null, (int)(_expiration-getContext().clock().now()), + null, (int)(timeLeft), _priority); getContext().jobQueue().addJob(j); }