diff --git a/router/java/src/net/i2p/router/message/SendTunnelMessageJob.java b/router/java/src/net/i2p/router/message/SendTunnelMessageJob.java index 0fcd6dafc..e1aae2d67 100644 --- a/router/java/src/net/i2p/router/message/SendTunnelMessageJob.java +++ b/router/java/src/net/i2p/router/message/SendTunnelMessageJob.java @@ -64,6 +64,8 @@ public class SendTunnelMessageJob extends JobImpl { _log = ctx.logManager().getLog(SendTunnelMessageJob.class); if (msg == null) throw new IllegalArgumentException("wtf, null message? sod off"); + if (tunnelId == null) + throw new IllegalArgumentException("wtf, no tunnelId? nuh uh"); _message = msg; _destRouter = targetRouter; _tunnelId = tunnelId; diff --git a/router/java/src/net/i2p/router/networkdb/HandleDatabaseStoreMessageJob.java b/router/java/src/net/i2p/router/networkdb/HandleDatabaseStoreMessageJob.java index 4773533f6..1fa392b4c 100644 --- a/router/java/src/net/i2p/router/networkdb/HandleDatabaseStoreMessageJob.java +++ b/router/java/src/net/i2p/router/networkdb/HandleDatabaseStoreMessageJob.java @@ -80,9 +80,15 @@ public class HandleDatabaseStoreMessageJob extends JobImpl { msg.setMessageId(_message.getReplyToken()); msg.setArrival(new Date(getContext().clock().now())); TunnelId outTunnelId = selectOutboundTunnel(); - getContext().jobQueue().addJob(new SendTunnelMessageJob(getContext(), msg, outTunnelId, - _message.getReplyGateway(), _message.getReplyTunnel(), - null, null, null, null, ACK_TIMEOUT, ACK_PRIORITY)); + if (outTunnelId == null) { + if (_log.shouldLog(Log.WARN)) + _log.warn("No outbound tunnel could be found"); + return; + } else { + getContext().jobQueue().addJob(new SendTunnelMessageJob(getContext(), msg, outTunnelId, + _message.getReplyGateway(), _message.getReplyTunnel(), + null, null, null, null, ACK_TIMEOUT, ACK_PRIORITY)); + } } private TunnelId selectOutboundTunnel() {