From a2fd817915b33c8deb95acffaac03a6d96ae11e7 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sat, 7 Nov 2020 13:53:44 +0000
Subject: [PATCH] Tunnels: getUnknownOptions() is non-null one more TunnelId
 fixup

---
 .../src/net/i2p/router/TunnelPoolSettings.java  |  3 +++
 .../router/tunnel/BuildMessageGenerator.java    |  4 ++--
 .../tunnel/pool/PooledTunnelCreatorConfig.java  |  3 +++
 .../router/tunnel/pool/TunnelPeerSelector.java  | 17 +++++++----------
 4 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/router/java/src/net/i2p/router/TunnelPoolSettings.java b/router/java/src/net/i2p/router/TunnelPoolSettings.java
index 96349af669..6b3337a439 100644
--- a/router/java/src/net/i2p/router/TunnelPoolSettings.java
+++ b/router/java/src/net/i2p/router/TunnelPoolSettings.java
@@ -277,6 +277,9 @@ public class TunnelPoolSettings {
      */
     public int getPriority() { return _priority; }
 
+    /**
+     *  @return non-null
+     */
     public Properties getUnknownOptions() { return _unknownOptions; }
 
     /**
diff --git a/router/java/src/net/i2p/router/tunnel/BuildMessageGenerator.java b/router/java/src/net/i2p/router/tunnel/BuildMessageGenerator.java
index 491be3af98..307110dfce 100644
--- a/router/java/src/net/i2p/router/tunnel/BuildMessageGenerator.java
+++ b/router/java/src/net/i2p/router/tunnel/BuildMessageGenerator.java
@@ -76,13 +76,13 @@ public abstract class BuildMessageGenerator {
             Hash peer = cfg.getPeer(hop);
             long recvTunnelId = -1;
             if (cfg.isInbound() || (hop > 0))
-                recvTunnelId = hopConfig.getReceiveTunnel().getTunnelId();
+                recvTunnelId = hopConfig.getReceiveTunnelId();
             else
                 recvTunnelId = 0;
             long nextTunnelId = -1;
             Hash nextPeer = null;
             if (hop + 1 < cfg.getLength()) {
-                nextTunnelId = cfg.getConfig(hop+1).getReceiveTunnel().getTunnelId();
+                nextTunnelId = cfg.getConfig(hop+1).getReceiveTunnelId();
                 nextPeer = cfg.getPeer(hop+1);
             } else {
                 if ( (replyTunnel >= 0) && (replyRouter != null) ) {
diff --git a/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java b/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java
index d27f82f7b9..950c841372 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java
@@ -47,6 +47,9 @@ class PooledTunnelCreatorConfig extends TunnelCreatorConfig {
         return rv;
     }
     
+    /**
+     *  @return non-null
+     */
     @Override
     public Properties getOptions() {
         return _pool.getSettings().getUnknownOptions();
diff --git a/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java b/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java
index da6b1c47af..fa7105e55a 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java
@@ -104,14 +104,12 @@ public abstract class TunnelPeerSelector extends ConnectChecker {
     protected boolean shouldSelectExplicit(TunnelPoolSettings settings) {
         if (settings.isExploratory()) return false;
         Properties opts = settings.getUnknownOptions();
-        if (opts != null) {
-            String peers = opts.getProperty("explicitPeers");
-            if (peers == null)
-                peers = ctx.getProperty("explicitPeers");
-            // only one out of 4 times so we don't break completely if peer doesn't build one
-            if (peers != null && ctx.random().nextInt(4) == 0)
-                return true;
-        }
+        String peers = opts.getProperty("explicitPeers");
+        if (peers == null)
+            peers = ctx.getProperty("explicitPeers");
+        // only one out of 4 times so we don't break completely if peer doesn't build one
+        if (peers != null && ctx.random().nextInt(4) == 0)
+            return true;
         return false;
     }
     
@@ -123,8 +121,7 @@ public abstract class TunnelPeerSelector extends ConnectChecker {
     protected List<Hash> selectExplicit(TunnelPoolSettings settings, int length) {
         String peers = null;
         Properties opts = settings.getUnknownOptions();
-        if (opts != null)
-            peers = opts.getProperty("explicitPeers");
+        peers = opts.getProperty("explicitPeers");
         
         if (peers == null)
             peers = ctx.getProperty("explicitPeers");
-- 
GitLab