From ca3b6eb00daf0ec644f8f4dba09b53d7f3a7a28e Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Fri, 13 Mar 2009 16:57:51 +0000
Subject: [PATCH] catch a reported NPE ?

---
 .../i2p/i2ptunnel/I2PTunnelHTTPServer.java    | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
index 536844af9c..d6cb40a259 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
@@ -171,7 +171,24 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
                 sender.start();
                 
                 browserout = _browser.getOutputStream();
-                serverin = _webserver.getInputStream(); 
+                // NPE seen here in 0.7-7, caused by addition of socket.close() in the
+                // catch (IOException ioe) block above in blockingHandle() ???
+                // CRIT  [ad-130280.hc] net.i2p.util.I2PThread        : Killing thread Thread-130280.hc
+                // java.lang.NullPointerException
+                //     at java.io.FileInputStream.<init>(FileInputStream.java:131)
+                //     at java.net.SocketInputStream.<init>(SocketInputStream.java:44)
+                //     at java.net.PlainSocketImpl.getInputStream(PlainSocketImpl.java:401)
+                //     at java.net.Socket$2.run(Socket.java:779)
+                //     at java.security.AccessController.doPrivileged(Native Method)
+                //     at java.net.Socket.getInputStream(Socket.java:776)
+                //     at net.i2p.i2ptunnel.I2PTunnelHTTPServer$CompressedRequestor.run(I2PTunnelHTTPServer.java:174)
+                //     at java.lang.Thread.run(Thread.java:619)
+                //     at net.i2p.util.I2PThread.run(I2PThread.java:71)
+                try {
+                    serverin = _webserver.getInputStream(); 
+                } catch (NullPointerException npe) {
+                    throw new IOException("getInputStream NPE");
+                }
                 CompressedResponseOutputStream compressedOut = new CompressedResponseOutputStream(browserout);
                 Sender s = new Sender(compressedOut, serverin, "server: server to browser");
                 if (_log.shouldLog(Log.INFO))
-- 
GitLab