diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java
index a65f34530..f5f1520f3 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java
@@ -12,15 +12,12 @@ import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.Properties;
import net.i2p.I2PException;
import net.i2p.client.I2PSession;
-import net.i2p.client.I2PSessionException;
import net.i2p.client.streaming.I2PSocket;
import net.i2p.client.streaming.I2PSocketManager;
import net.i2p.client.streaming.I2PSocketManagerFactory;
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java
index f00f2edaa..ed9a62a43 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java
@@ -22,9 +22,7 @@ import net.i2p.client.streaming.I2PSocket;
import net.i2p.client.streaming.I2PSocketOptions;
import net.i2p.data.DataFormatException;
import net.i2p.data.Destination;
-import net.i2p.util.Clock;
import net.i2p.util.EventDispatcher;
-import net.i2p.util.I2PThread;
import net.i2p.util.Log;
/**
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
index fa394248a..f5ea487e7 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
@@ -4,7 +4,6 @@
package net.i2p.i2ptunnel;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
@@ -17,7 +16,6 @@ import net.i2p.I2PAppContext;
import net.i2p.I2PException;
import net.i2p.client.streaming.I2PServerSocket;
import net.i2p.client.streaming.I2PSocket;
-import net.i2p.client.streaming.I2PSocketManager;
import net.i2p.data.DataHelper;
import net.i2p.util.EventDispatcher;
import net.i2p.util.I2PThread;
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java
index 59f5e8f47..1f1e02157 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java
@@ -3,7 +3,6 @@
*/
package net.i2p.i2ptunnel;
-import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InterruptedIOException;
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelControllerGroup.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelControllerGroup.java
index 15583aeb8..3b6e76539 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelControllerGroup.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelControllerGroup.java
@@ -1,12 +1,8 @@
package net.i2p.i2ptunnel;
-import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.InputStreamReader;
-
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/WebEditPageFormGenerator.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/WebEditPageFormGenerator.java
index 7bf7cfaf0..dd6a1db4c 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/WebEditPageFormGenerator.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/WebEditPageFormGenerator.java
@@ -1,7 +1,5 @@
package net.i2p.i2ptunnel;
-import java.io.File;
-
import java.util.Iterator;
import java.util.Properties;
import java.util.Random;
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKSServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKSServer.java
index e17c09d06..caf4d1ce3 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKSServer.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKSServer.java
@@ -14,7 +14,6 @@ import net.i2p.I2PException;
import net.i2p.client.streaming.I2PSocket;
import net.i2p.client.streaming.I2PSocketManager;
import net.i2p.client.streaming.I2PSocketManagerFactory;
-import net.i2p.client.streaming.I2PSocketOptions;
import net.i2p.data.DataFormatException;
import net.i2p.i2ptunnel.I2PTunnel;
import net.i2p.util.Log;
diff --git a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManager.java b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManager.java
index afa240e76..ba113ca62 100644
--- a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManager.java
+++ b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManager.java
@@ -4,27 +4,16 @@
*/
package net.i2p.client.streaming;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
import java.io.InterruptedIOException;
-import java.io.UnsupportedEncodingException;
import java.net.ConnectException;
import java.net.NoRouteToHostException;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
import java.util.Properties;
import java.util.Set;
import net.i2p.I2PAppContext;
import net.i2p.I2PException;
import net.i2p.client.I2PSession;
-import net.i2p.client.I2PSessionException;
-import net.i2p.client.I2PSessionListener;
-import net.i2p.data.Base64;
-import net.i2p.data.DataFormatException;
import net.i2p.data.Destination;
-import net.i2p.util.Log;
/**
diff --git a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketOptions.java b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketOptions.java
index a19cbd192..fe191803e 100644
--- a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketOptions.java
+++ b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketOptions.java
@@ -1,7 +1,5 @@
package net.i2p.client.streaming;
-import java.util.Properties;
-
/**
* Define the configuration for streaming and verifying data on the socket.
*
diff --git a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketOptionsImpl.java b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketOptionsImpl.java
index 2bc223682..bd4efb28b 100644
--- a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketOptionsImpl.java
+++ b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketOptionsImpl.java
@@ -1,6 +1,5 @@
package net.i2p.client.streaming;
-import java.util.Iterator;
import java.util.Properties;
/**
diff --git a/apps/ministreaming/java/src/net/i2p/client/streaming/StreamSinkSend.java b/apps/ministreaming/java/src/net/i2p/client/streaming/StreamSinkSend.java
index 6b43fb0c4..82c51b43d 100644
--- a/apps/ministreaming/java/src/net/i2p/client/streaming/StreamSinkSend.java
+++ b/apps/ministreaming/java/src/net/i2p/client/streaming/StreamSinkSend.java
@@ -8,8 +8,6 @@ import java.io.OutputStream;
import java.net.ConnectException;
import java.net.NoRouteToHostException;
-import java.util.Random;
-
import net.i2p.I2PAppContext;
import net.i2p.I2PException;
import net.i2p.data.Destination;
diff --git a/apps/ministreaming/java/src/net/i2p/client/streaming/TestSwarm.java b/apps/ministreaming/java/src/net/i2p/client/streaming/TestSwarm.java
index 92498226f..cc73355ed 100644
--- a/apps/ministreaming/java/src/net/i2p/client/streaming/TestSwarm.java
+++ b/apps/ministreaming/java/src/net/i2p/client/streaming/TestSwarm.java
@@ -1,24 +1,12 @@
package net.i2p.client.streaming;
-import java.io.BufferedReader;
-import java.io.IOException;
import java.io.InputStream;
-import java.io.InputStreamReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.OutputStream;
-import java.net.Socket;
-
-import java.util.Map;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Properties;
-import java.util.StringTokenizer;
-
import net.i2p.I2PAppContext;
import net.i2p.client.I2PClientFactory;
-import net.i2p.data.DataHelper;
import net.i2p.data.Destination;
import net.i2p.util.Log;
import net.i2p.util.I2PThread;
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigAdvancedHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigAdvancedHandler.java
index 90d9cea85..78f66fbf9 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigAdvancedHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigAdvancedHandler.java
@@ -17,11 +17,6 @@ public class ConfigAdvancedHandler extends FormHandler {
private boolean _shouldSave;
private String _config;
- public void ConfigNetHandler() {
- _shouldSave = false;
- _forceRestart = false;
- }
-
protected void processForm() {
if (_shouldSave) {
saveChanges();
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigLoggingHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigLoggingHandler.java
index 2a145e213..a09f250a7 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigLoggingHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigLoggingHandler.java
@@ -1,11 +1,8 @@
package net.i2p.router.web;
import java.io.ByteArrayInputStream;
-import java.io.BufferedReader;
import java.io.IOException;
-import java.io.InputStreamReader;
import java.util.Properties;
-import net.i2p.util.Log;
/**
* Handler to deal with form submissions from the logging config form and act
@@ -21,10 +18,6 @@ public class ConfigLoggingHandler extends FormHandler {
private String _dateFormat;
private String _fileSize;
- public void ConfigNetHandler() {
- _shouldSave = false;
- }
-
protected void processForm() {
if (_shouldSave) {
saveChanges();
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigLoggingHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigLoggingHelper.java
index 4dcfe4908..4ca03b1e5 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigLoggingHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigLoggingHelper.java
@@ -1,14 +1,9 @@
package net.i2p.router.web;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
import java.util.Iterator;
-import java.util.List;
import java.util.Properties;
import java.util.TreeSet;
-import net.i2p.util.Log;
-
import net.i2p.router.RouterContext;
public class ConfigLoggingHelper {
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java
index ef1f24738..8cf396102 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java
@@ -13,15 +13,10 @@ import java.net.URLConnection;
import java.util.HashSet;
import java.util.Iterator;
-import java.util.List;
import java.util.Set;
-import net.i2p.util.Log;
import net.i2p.time.Timestamper;
-import net.i2p.router.RouterContext;
-import net.i2p.router.ClientTunnelSettings;
-
/**
* Handler to deal with form submissions from the main config form and act
* upon the values.
@@ -41,13 +36,6 @@ public class ConfigNetHandler extends FormHandler {
private String _reseedFrom;
private String _sharePct;
- public void ConfigNetHandler() {
- _guessRequested = false;
- _reseedRequested = false;
- _saveRequested = false;
- _timeSyncEnabled = false;
- }
-
protected void processForm() {
if (_guessRequested) {
guessHostname();
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java
index 015ab6784..fa66bac35 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java
@@ -1,16 +1,7 @@
package net.i2p.router.web;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.List;
-import java.util.Iterator;
-import java.util.TreeMap;
-
import net.i2p.time.Timestamper;
-import net.i2p.util.Log;
-
import net.i2p.router.RouterContext;
-import net.i2p.router.ClientTunnelSettings;
public class ConfigNetHelper {
private RouterContext _context;
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigServiceHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigServiceHandler.java
index 392329f01..46159ce01 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigServiceHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigServiceHandler.java
@@ -8,7 +8,6 @@ import java.util.Properties;
import java.util.TreeMap;
import net.i2p.data.DataHelper;
-import net.i2p.router.ClientTunnelSettings;
import net.i2p.router.Router;
import net.i2p.apps.systray.SysTray;
import net.i2p.apps.systray.UrlLauncher;
@@ -20,7 +19,6 @@ import org.tanukisoftware.wrapper.WrapperManager;
*
*/
public class ConfigServiceHandler extends FormHandler {
- public void ConfigNetHandler() {}
private class UpdateWrapperManagerTask implements Runnable {
private int _exitCode;
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHelper.java
index 527e13523..2681f34c9 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigTunnelsHelper.java
@@ -1,15 +1,8 @@
package net.i2p.router.web;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.List;
import java.util.Iterator;
import java.util.Set;
import java.util.Properties;
-import java.util.TreeMap;
-
-import net.i2p.util.Log;
-
import net.i2p.data.Destination;
import net.i2p.router.RouterContext;
import net.i2p.router.TunnelPoolSettings;
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java
index bf515c82d..aed1b8772 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java
@@ -1,9 +1,5 @@
package net.i2p.router.web;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.List;
-
import net.i2p.router.RouterContext;
import net.i2p.util.FileUtil;
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/FormHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/FormHandler.java
index 02acc1b9c..9f14c8b16 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/FormHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/FormHandler.java
@@ -3,10 +3,7 @@ package net.i2p.router.web;
import java.util.List;
import java.util.ArrayList;
-import net.i2p.util.Log;
-
import net.i2p.router.RouterContext;
-import net.i2p.router.ClientTunnelSettings;
/**
* Simple form handler base class - does not depend on servlets or jsp,
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java
index 258f597bc..a1005f2e1 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java
@@ -1,7 +1,5 @@
package net.i2p.router.web;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
import java.util.List;
import net.i2p.router.RouterContext;
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/OldConsoleHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/OldConsoleHelper.java
index c6d9a7430..4dade47ce 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/OldConsoleHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/OldConsoleHelper.java
@@ -4,8 +4,6 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
-import java.util.List;
-
import net.i2p.router.RouterContext;
import net.i2p.router.admin.StatsGenerator;
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ReseedHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ReseedHandler.java
index d5e3f7d3d..2c6a635e3 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ReseedHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ReseedHandler.java
@@ -8,14 +8,12 @@ import java.io.OutputStream;
import java.net.Socket;
import java.net.URL;
-import java.net.URLConnection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import net.i2p.I2PAppContext;
import net.i2p.util.I2PThread;
-import net.i2p.util.Log;
/**
* Handler to deal with reseed requests. This reseed from the URL
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java
index b6f8c6338..158567529 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java
@@ -13,10 +13,7 @@ import org.mortbay.jetty.servlet.WebApplicationContext;
import org.mortbay.http.DigestAuthenticator;
import org.mortbay.http.handler.SecurityHandler;
import org.mortbay.http.HashUserRealm;
-import org.mortbay.http.HttpRequest;
import org.mortbay.http.SecurityConstraint;
-import org.mortbay.http.Authenticator;
-import org.mortbay.util.MultiException;
public class RouterConsoleRunner {
private Server _server;
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/StatHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/StatHelper.java
index ca5c447eb..3cdebdf92 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/StatHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/StatHelper.java
@@ -3,7 +3,6 @@ package net.i2p.router.web;
import java.util.Iterator;
import java.util.Set;
-import java.io.ByteArrayOutputStream;
import java.io.Writer;
import net.i2p.data.Hash;
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
index c02a0dbe2..cfcfe8c0d 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
@@ -1,11 +1,7 @@
package net.i2p.router.web;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
import java.text.DateFormat;
import java.text.DecimalFormat;
-import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.Locale;
diff --git a/apps/sam/java/src/net/i2p/sam/SAMBridge.java b/apps/sam/java/src/net/i2p/sam/SAMBridge.java
index 3f692571e..0fbaacafe 100644
--- a/apps/sam/java/src/net/i2p/sam/SAMBridge.java
+++ b/apps/sam/java/src/net/i2p/sam/SAMBridge.java
@@ -17,7 +17,6 @@ import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -221,7 +220,7 @@ public class SAMBridge implements Runnable {
SAMBridge bridge = new SAMBridge(host, port, opts, keyfile);
I2PThread t = new I2PThread(bridge, "SAMListener");
if (Boolean.valueOf(System.getProperty("sam.shutdownOnOOM", "false")).booleanValue()) {
- t.addOOMEventListener(new I2PThread.OOMEventListener() {
+ I2PThread.addOOMEventListener(new I2PThread.OOMEventListener() {
public void outOfMemory(OutOfMemoryError err) {
err.printStackTrace();
System.err.println("OOMed, die die die");
diff --git a/apps/sam/java/src/net/i2p/sam/SAMHandlerFactory.java b/apps/sam/java/src/net/i2p/sam/SAMHandlerFactory.java
index cac35d60a..bd0a23d4e 100644
--- a/apps/sam/java/src/net/i2p/sam/SAMHandlerFactory.java
+++ b/apps/sam/java/src/net/i2p/sam/SAMHandlerFactory.java
@@ -8,9 +8,7 @@ package net.i2p.sam;
*
*/
-import java.io.BufferedReader;
import java.io.IOException;
-import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.Socket;
diff --git a/apps/sam/java/src/net/i2p/sam/SAMv1Handler.java b/apps/sam/java/src/net/i2p/sam/SAMv1Handler.java
index 31fb1c4b6..dfca50e6d 100644
--- a/apps/sam/java/src/net/i2p/sam/SAMv1Handler.java
+++ b/apps/sam/java/src/net/i2p/sam/SAMv1Handler.java
@@ -15,7 +15,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InterruptedIOException;
import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
import java.net.ConnectException;
import java.net.NoRouteToHostException;
import java.net.Socket;
diff --git a/apps/sam/java/src/net/i2p/sam/client/SAMReader.java b/apps/sam/java/src/net/i2p/sam/client/SAMReader.java
index 7e87bf643..c002fb6af 100644
--- a/apps/sam/java/src/net/i2p/sam/client/SAMReader.java
+++ b/apps/sam/java/src/net/i2p/sam/client/SAMReader.java
@@ -2,7 +2,6 @@ package net.i2p.sam.client;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
-import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Properties;
diff --git a/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java b/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java
index 8aa054d08..2de4836c5 100644
--- a/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java
+++ b/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java
@@ -1,27 +1,19 @@
package net.i2p.sam.client;
-import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Map;
-import java.util.Collections;
import java.util.HashMap;
-import java.util.Properties;
-import java.util.StringTokenizer;
-
import net.i2p.I2PAppContext;
import net.i2p.data.DataHelper;
import net.i2p.util.Log;
import net.i2p.util.I2PThread;
import net.i2p.sam.client.SAMEventHandler;
-import net.i2p.sam.client.SAMClientEventListenerImpl;
import net.i2p.sam.client.SAMReader;
/**
diff --git a/apps/sam/java/src/net/i2p/sam/client/SAMStreamSink.java b/apps/sam/java/src/net/i2p/sam/client/SAMStreamSink.java
index 175232321..c3d634e93 100644
--- a/apps/sam/java/src/net/i2p/sam/client/SAMStreamSink.java
+++ b/apps/sam/java/src/net/i2p/sam/client/SAMStreamSink.java
@@ -1,27 +1,17 @@
package net.i2p.sam.client;
-import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
-import java.io.InputStreamReader;
import java.io.FileOutputStream;
import java.io.File;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Map;
-import java.util.Collections;
import java.util.HashMap;
-import java.util.Properties;
-import java.util.StringTokenizer;
-
import net.i2p.I2PAppContext;
-import net.i2p.data.DataHelper;
import net.i2p.util.Log;
-import net.i2p.util.I2PThread;
-
import net.i2p.sam.client.SAMEventHandler;
-import net.i2p.sam.client.SAMClientEventListenerImpl;
import net.i2p.sam.client.SAMReader;
/**
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/Connection.java b/apps/streaming/java/src/net/i2p/client/streaming/Connection.java
index 4540966f1..17dc40b38 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/Connection.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/Connection.java
@@ -2,19 +2,15 @@ package net.i2p.client.streaming;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.TreeMap;
import net.i2p.I2PAppContext;
import net.i2p.client.I2PSession;
import net.i2p.data.Base64;
import net.i2p.data.DataHelper;
import net.i2p.data.Destination;
-import net.i2p.data.SessionTag;
import net.i2p.util.Log;
import net.i2p.util.SimpleTimer;
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionDataReceiver.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionDataReceiver.java
index 680126690..5ed0e7a6c 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionDataReceiver.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionDataReceiver.java
@@ -1,10 +1,7 @@
package net.i2p.client.streaming;
-import java.io.InterruptedIOException;
-import java.io.IOException;
import net.i2p.I2PAppContext;
import net.i2p.data.ByteArray;
-import net.i2p.util.ByteCache;
import net.i2p.util.Log;
/**
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java
index 05d3ecfa9..64b2fb8aa 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java
@@ -6,7 +6,6 @@ import net.i2p.I2PAppContext;
import net.i2p.I2PException;
import net.i2p.data.DataHelper;
import net.i2p.data.Destination;
-import net.i2p.util.ByteCache;
import net.i2p.util.Log;
import net.i2p.util.SimpleTimer;
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/I2PServerSocketFull.java b/apps/streaming/java/src/net/i2p/client/streaming/I2PServerSocketFull.java
index 8109b0c16..b1a4175f2 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/I2PServerSocketFull.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/I2PServerSocketFull.java
@@ -1,6 +1,5 @@
package net.i2p.client.streaming;
-import java.net.ConnectException;
import net.i2p.I2PException;
/**
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/I2PSocketManagerFull.java b/apps/streaming/java/src/net/i2p/client/streaming/I2PSocketManagerFull.java
index a97e768d8..2c62c0de3 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/I2PSocketManagerFull.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/I2PSocketManagerFull.java
@@ -1,15 +1,8 @@
package net.i2p.client.streaming;
-import java.io.IOException;
-import java.io.InterruptedIOException;
-import java.io.UnsupportedEncodingException;
-import java.net.ConnectException;
import java.net.NoRouteToHostException;
-import java.util.ArrayList;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
-import java.util.List;
import java.util.Properties;
import java.util.Set;
@@ -17,7 +10,6 @@ import net.i2p.I2PAppContext;
import net.i2p.I2PException;
import net.i2p.client.I2PSession;
import net.i2p.client.I2PSessionException;
-import net.i2p.client.I2PSessionListener;
import net.i2p.data.Destination;
import net.i2p.util.Log;
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/MessageInputStream.java b/apps/streaming/java/src/net/i2p/client/streaming/MessageInputStream.java
index 84e7d6bd6..fac4ad205 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/MessageInputStream.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/MessageInputStream.java
@@ -2,8 +2,6 @@ package net.i2p.client.streaming;
import java.io.IOException;
import java.io.InputStream;
-import java.io.InterruptedIOException;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/PacketLocal.java b/apps/streaming/java/src/net/i2p/client/streaming/PacketLocal.java
index c6698ab7f..a2f0916be 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/PacketLocal.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/PacketLocal.java
@@ -3,7 +3,6 @@ package net.i2p.client.streaming;
import java.util.Set;
import net.i2p.I2PAppContext;
-import net.i2p.data.ByteArray;
import net.i2p.data.Destination;
import net.i2p.data.SessionKey;
import net.i2p.util.ByteCache;
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/PacketQueue.java b/apps/streaming/java/src/net/i2p/client/streaming/PacketQueue.java
index 1c8658275..9d36d7e5e 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/PacketQueue.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/PacketQueue.java
@@ -1,6 +1,5 @@
package net.i2p.client.streaming;
-import java.util.Arrays;
import java.util.Set;
import java.util.HashSet;
diff --git a/apps/susimail/build.xml b/apps/susimail/build.xml
index 38d4cc6a0..02c9a0a83 100644
--- a/apps/susimail/build.xml
+++ b/apps/susimail/build.xml
@@ -34,8 +34,10 @@
-
+
+
+
diff --git a/apps/susimail/src/src/i2p/susi/webmail/Mail.java b/apps/susimail/src/src/i2p/susi/webmail/Mail.java
index 9c98a4fdb..a760c6160 100644
--- a/apps/susimail/src/src/i2p/susi/webmail/Mail.java
+++ b/apps/susimail/src/src/i2p/susi/webmail/Mail.java
@@ -19,11 +19,10 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * $Revision: 1.5 $
+ * $Revision: 1.1 $
*/
package i2p.susi.webmail;
-import i2p.susi.debug.Debug;
import i2p.susi.util.Config;
import i2p.susi.util.ReadBuffer;
import i2p.susi.webmail.encoding.Encoding;
diff --git a/apps/susimail/src/src/i2p/susi/webmail/MailCache.java b/apps/susimail/src/src/i2p/susi/webmail/MailCache.java
index 0db1dbc9a..cc4209795 100644
--- a/apps/susimail/src/src/i2p/susi/webmail/MailCache.java
+++ b/apps/susimail/src/src/i2p/susi/webmail/MailCache.java
@@ -19,13 +19,12 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * $Revision: 1.3 $
+ * $Revision: 1.1 $
*/
package i2p.susi.webmail;
import java.util.Hashtable;
-import i2p.susi.debug.Debug;
import i2p.susi.webmail.pop3.POP3MailBox;
/**
diff --git a/apps/systray/java/src/net/i2p/apps/systray/SysTray.java b/apps/systray/java/src/net/i2p/apps/systray/SysTray.java
index 8a5a39274..32017f1f8 100644
--- a/apps/systray/java/src/net/i2p/apps/systray/SysTray.java
+++ b/apps/systray/java/src/net/i2p/apps/systray/SysTray.java
@@ -10,8 +10,6 @@
package net.i2p.apps.systray;
import java.awt.Frame;
-import java.io.File;
-
import snoozesoft.systray4j.SysTrayMenu;
import snoozesoft.systray4j.SysTrayMenuEvent;
import snoozesoft.systray4j.SysTrayMenuIcon;
diff --git a/core/java/src/net/i2p/client/I2CPMessageProducer.java b/core/java/src/net/i2p/client/I2CPMessageProducer.java
index 8c68e3d0a..2cbaa2e6e 100644
--- a/core/java/src/net/i2p/client/I2CPMessageProducer.java
+++ b/core/java/src/net/i2p/client/I2CPMessageProducer.java
@@ -30,7 +30,6 @@ import net.i2p.data.i2cp.ReportAbuseMessage;
import net.i2p.data.i2cp.SendMessageMessage;
import net.i2p.data.i2cp.SessionConfig;
import net.i2p.util.Log;
-import net.i2p.util.RandomSource;
/**
* Produce the various messages the session needs to send to the router.
diff --git a/core/java/src/net/i2p/client/MessageState.java b/core/java/src/net/i2p/client/MessageState.java
index 74afc0f76..ee153bd73 100644
--- a/core/java/src/net/i2p/client/MessageState.java
+++ b/core/java/src/net/i2p/client/MessageState.java
@@ -1,9 +1,7 @@
package net.i2p.client;
-import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
-import java.util.List;
import java.util.Set;
import net.i2p.data.Destination;
diff --git a/core/java/src/net/i2p/client/naming/HostsTxtNamingService.java b/core/java/src/net/i2p/client/naming/HostsTxtNamingService.java
index bb44ac766..c66a1fd25 100644
--- a/core/java/src/net/i2p/client/naming/HostsTxtNamingService.java
+++ b/core/java/src/net/i2p/client/naming/HostsTxtNamingService.java
@@ -8,8 +8,6 @@
package net.i2p.client.naming;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
diff --git a/core/java/src/net/i2p/crypto/AESEngine.java b/core/java/src/net/i2p/crypto/AESEngine.java
index 22077fad8..5f95a6806 100644
--- a/core/java/src/net/i2p/crypto/AESEngine.java
+++ b/core/java/src/net/i2p/crypto/AESEngine.java
@@ -9,10 +9,7 @@ package net.i2p.crypto;
*
*/
-import java.io.IOException;
-
import net.i2p.I2PAppContext;
-import net.i2p.data.DataFormatException;
import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
import net.i2p.data.SessionKey;
diff --git a/core/java/src/net/i2p/crypto/AESInputStream.java b/core/java/src/net/i2p/crypto/AESInputStream.java
index 92de195f6..cdc11bbc7 100644
--- a/core/java/src/net/i2p/crypto/AESInputStream.java
+++ b/core/java/src/net/i2p/crypto/AESInputStream.java
@@ -14,9 +14,6 @@ import java.io.ByteArrayOutputStream;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
import net.i2p.I2PAppContext;
import net.i2p.data.Base64;
import net.i2p.data.DataHelper;
diff --git a/core/java/src/net/i2p/crypto/ElGamalAESEngine.java b/core/java/src/net/i2p/crypto/ElGamalAESEngine.java
index 5cf8e9ef0..3785c202e 100644
--- a/core/java/src/net/i2p/crypto/ElGamalAESEngine.java
+++ b/core/java/src/net/i2p/crypto/ElGamalAESEngine.java
@@ -9,8 +9,6 @@ package net.i2p.crypto;
*
*/
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
diff --git a/core/java/src/net/i2p/crypto/ElGamalEngine.java b/core/java/src/net/i2p/crypto/ElGamalEngine.java
index 4a6a9470c..29837f26a 100644
--- a/core/java/src/net/i2p/crypto/ElGamalEngine.java
+++ b/core/java/src/net/i2p/crypto/ElGamalEngine.java
@@ -29,7 +29,6 @@ package net.i2p.crypto;
* POSSIBILITY OF SUCH DAMAGE.
*/
-import java.io.ByteArrayInputStream;
import java.math.BigInteger;
import net.i2p.I2PAppContext;
diff --git a/core/java/src/net/i2p/crypto/TransientSessionKeyManager.java b/core/java/src/net/i2p/crypto/TransientSessionKeyManager.java
index 39b01c919..2a7c3ed57 100644
--- a/core/java/src/net/i2p/crypto/TransientSessionKeyManager.java
+++ b/core/java/src/net/i2p/crypto/TransientSessionKeyManager.java
@@ -23,7 +23,6 @@ import net.i2p.data.DataHelper;
import net.i2p.data.PublicKey;
import net.i2p.data.SessionKey;
import net.i2p.data.SessionTag;
-import net.i2p.util.Clock;
import net.i2p.util.Log;
/**
diff --git a/core/java/src/net/i2p/data/DataHelper.java b/core/java/src/net/i2p/data/DataHelper.java
index aadec1549..7b2dd00a8 100644
--- a/core/java/src/net/i2p/data/DataHelper.java
+++ b/core/java/src/net/i2p/data/DataHelper.java
@@ -10,7 +10,6 @@ package net.i2p.data;
*/
import java.io.BufferedReader;
-import java.io.BufferedInputStream;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
diff --git a/core/java/src/net/i2p/data/DataStructure.java b/core/java/src/net/i2p/data/DataStructure.java
index 9c7d8e818..d331eb82a 100644
--- a/core/java/src/net/i2p/data/DataStructure.java
+++ b/core/java/src/net/i2p/data/DataStructure.java
@@ -12,7 +12,6 @@ package net.i2p.data;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.io.Serializable;
/**
* Defines the class as a standard object with particular bit representation,
@@ -20,7 +19,7 @@ import java.io.Serializable;
*
* @author jrandom
*/
-public interface DataStructure extends Serializable {
+public interface DataStructure /* extends Serializable */ {
/**
* Load up the current object with data from the given stream. Data loaded
* this way must match the I2P data structure specification.
diff --git a/core/java/src/net/i2p/data/i2cp/MessagePayloadMessage.java b/core/java/src/net/i2p/data/i2cp/MessagePayloadMessage.java
index d0f60436e..b51e9c2fc 100644
--- a/core/java/src/net/i2p/data/i2cp/MessagePayloadMessage.java
+++ b/core/java/src/net/i2p/data/i2cp/MessagePayloadMessage.java
@@ -9,7 +9,6 @@ package net.i2p.data.i2cp;
*
*/
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
diff --git a/core/java/src/net/i2p/data/i2cp/SendMessageMessage.java b/core/java/src/net/i2p/data/i2cp/SendMessageMessage.java
index c39f98967..cb97c0ff1 100644
--- a/core/java/src/net/i2p/data/i2cp/SendMessageMessage.java
+++ b/core/java/src/net/i2p/data/i2cp/SendMessageMessage.java
@@ -9,7 +9,6 @@ package net.i2p.data.i2cp;
*
*/
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
diff --git a/core/java/src/net/i2p/util/Log.java b/core/java/src/net/i2p/util/Log.java
index 74aea9237..7293c5174 100644
--- a/core/java/src/net/i2p/util/Log.java
+++ b/core/java/src/net/i2p/util/Log.java
@@ -10,7 +10,6 @@ package net.i2p.util;
*/
import net.i2p.I2PAppContext;
-import net.i2p.data.DataHelper;
/**
* Wrapper class for whatever logging system I2P uses. This class should be
diff --git a/router/java/src/net/i2p/data/i2np/DataMessage.java b/router/java/src/net/i2p/data/i2np/DataMessage.java
index cc98392da..9162e41a3 100644
--- a/router/java/src/net/i2p/data/i2np/DataMessage.java
+++ b/router/java/src/net/i2p/data/i2np/DataMessage.java
@@ -8,12 +8,8 @@ package net.i2p.data.i2np;
*
*/
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
-
import net.i2p.I2PAppContext;
-import net.i2p.data.DataFormatException;
import net.i2p.data.DataHelper;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/data/i2np/DatabaseLookupMessage.java b/router/java/src/net/i2p/data/i2np/DatabaseLookupMessage.java
index 0d06c0393..14a91b550 100644
--- a/router/java/src/net/i2p/data/i2np/DatabaseLookupMessage.java
+++ b/router/java/src/net/i2p/data/i2np/DatabaseLookupMessage.java
@@ -8,15 +8,12 @@ package net.i2p.data.i2np;
*
*/
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import net.i2p.I2PAppContext;
-import net.i2p.data.DataFormatException;
import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
import net.i2p.data.TunnelId;
diff --git a/router/java/src/net/i2p/data/i2np/DatabaseSearchReplyMessage.java b/router/java/src/net/i2p/data/i2np/DatabaseSearchReplyMessage.java
index a3c976545..9207c72d6 100644
--- a/router/java/src/net/i2p/data/i2np/DatabaseSearchReplyMessage.java
+++ b/router/java/src/net/i2p/data/i2np/DatabaseSearchReplyMessage.java
@@ -8,14 +8,11 @@ package net.i2p.data.i2np;
*
*/
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import net.i2p.I2PAppContext;
-import net.i2p.data.DataFormatException;
import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/data/i2np/DatabaseStoreMessage.java b/router/java/src/net/i2p/data/i2np/DatabaseStoreMessage.java
index 9a18ee1ac..23e6ec6d3 100644
--- a/router/java/src/net/i2p/data/i2np/DatabaseStoreMessage.java
+++ b/router/java/src/net/i2p/data/i2np/DatabaseStoreMessage.java
@@ -9,10 +9,7 @@ package net.i2p.data.i2np;
*/
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
-
import net.i2p.I2PAppContext;
import net.i2p.data.DataFormatException;
import net.i2p.data.DataHelper;
diff --git a/router/java/src/net/i2p/data/i2np/DateMessage.java b/router/java/src/net/i2p/data/i2np/DateMessage.java
index 3b27f886a..61c244cde 100644
--- a/router/java/src/net/i2p/data/i2np/DateMessage.java
+++ b/router/java/src/net/i2p/data/i2np/DateMessage.java
@@ -8,13 +8,8 @@ package net.i2p.data.i2np;
*
*/
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
-import java.util.Date;
-
import net.i2p.I2PAppContext;
-import net.i2p.data.DataFormatException;
import net.i2p.data.DataHelper;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/data/i2np/DeliveryStatusMessage.java b/router/java/src/net/i2p/data/i2np/DeliveryStatusMessage.java
index f480e490e..955a8ef45 100644
--- a/router/java/src/net/i2p/data/i2np/DeliveryStatusMessage.java
+++ b/router/java/src/net/i2p/data/i2np/DeliveryStatusMessage.java
@@ -8,13 +8,8 @@ package net.i2p.data.i2np;
*
*/
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
-import java.util.Date;
-
import net.i2p.I2PAppContext;
-import net.i2p.data.DataFormatException;
import net.i2p.data.DataHelper;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/data/i2np/GarlicMessage.java b/router/java/src/net/i2p/data/i2np/GarlicMessage.java
index 36f1e0e09..f0bc92c45 100644
--- a/router/java/src/net/i2p/data/i2np/GarlicMessage.java
+++ b/router/java/src/net/i2p/data/i2np/GarlicMessage.java
@@ -8,12 +8,8 @@ package net.i2p.data.i2np;
*
*/
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
-
import net.i2p.I2PAppContext;
-import net.i2p.data.DataFormatException;
import net.i2p.data.DataHelper;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java b/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java
index 86e0e9802..cea2087b9 100644
--- a/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java
+++ b/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java
@@ -8,7 +8,6 @@ package net.i2p.data.i2np;
*
*/
-import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
diff --git a/router/java/src/net/i2p/data/i2np/TunnelCreateMessage.java b/router/java/src/net/i2p/data/i2np/TunnelCreateMessage.java
index 0b767998e..f89e4b898 100644
--- a/router/java/src/net/i2p/data/i2np/TunnelCreateMessage.java
+++ b/router/java/src/net/i2p/data/i2np/TunnelCreateMessage.java
@@ -8,9 +8,7 @@ package net.i2p.data.i2np;
*
*/
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.util.Properties;
import net.i2p.I2PAppContext;
diff --git a/router/java/src/net/i2p/data/i2np/TunnelCreateStatusMessage.java b/router/java/src/net/i2p/data/i2np/TunnelCreateStatusMessage.java
index 82af54098..6e9b6568a 100644
--- a/router/java/src/net/i2p/data/i2np/TunnelCreateStatusMessage.java
+++ b/router/java/src/net/i2p/data/i2np/TunnelCreateStatusMessage.java
@@ -8,14 +8,9 @@ package net.i2p.data.i2np;
*
*/
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
-
import net.i2p.I2PAppContext;
-import net.i2p.data.DataFormatException;
import net.i2p.data.DataHelper;
-import net.i2p.data.Hash;
import net.i2p.data.TunnelId;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/data/i2np/TunnelDataMessage.java b/router/java/src/net/i2p/data/i2np/TunnelDataMessage.java
index 0614086c4..b326866b3 100644
--- a/router/java/src/net/i2p/data/i2np/TunnelDataMessage.java
+++ b/router/java/src/net/i2p/data/i2np/TunnelDataMessage.java
@@ -8,18 +8,10 @@ package net.i2p.data.i2np;
*
*/
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
import net.i2p.I2PAppContext;
-import net.i2p.data.Base64;
import net.i2p.data.ByteArray;
-import net.i2p.data.DataFormatException;
import net.i2p.data.DataHelper;
-import net.i2p.data.Hash;
-import net.i2p.data.Signature;
import net.i2p.data.TunnelId;
import net.i2p.util.ByteCache;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/data/i2np/TunnelGatewayMessage.java b/router/java/src/net/i2p/data/i2np/TunnelGatewayMessage.java
index a2554f633..373ca6f4d 100644
--- a/router/java/src/net/i2p/data/i2np/TunnelGatewayMessage.java
+++ b/router/java/src/net/i2p/data/i2np/TunnelGatewayMessage.java
@@ -8,18 +8,9 @@ package net.i2p.data.i2np;
*
*/
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Date;
-
import net.i2p.I2PAppContext;
-import net.i2p.data.Base64;
-import net.i2p.data.DataFormatException;
import net.i2p.data.DataHelper;
-import net.i2p.data.Hash;
-import net.i2p.data.Signature;
import net.i2p.data.TunnelId;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/router/InNetMessagePool.java b/router/java/src/net/i2p/router/InNetMessagePool.java
index 4a8f98178..b4428908f 100644
--- a/router/java/src/net/i2p/router/InNetMessagePool.java
+++ b/router/java/src/net/i2p/router/InNetMessagePool.java
@@ -10,11 +10,7 @@ package net.i2p.router;
import java.io.Writer;
import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
-
import net.i2p.data.Hash;
import net.i2p.data.RouterIdentity;
import net.i2p.data.i2np.DeliveryStatusMessage;
diff --git a/router/java/src/net/i2p/router/MessageValidator.java b/router/java/src/net/i2p/router/MessageValidator.java
index a5db44e82..18713f946 100644
--- a/router/java/src/net/i2p/router/MessageValidator.java
+++ b/router/java/src/net/i2p/router/MessageValidator.java
@@ -1,10 +1,5 @@
package net.i2p.router;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-import java.util.TreeMap;
-
import net.i2p.util.DecayingBloomFilter;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/router/OutNetMessage.java b/router/java/src/net/i2p/router/OutNetMessage.java
index 0339d4d4d..808dcecde 100644
--- a/router/java/src/net/i2p/router/OutNetMessage.java
+++ b/router/java/src/net/i2p/router/OutNetMessage.java
@@ -8,8 +8,6 @@ package net.i2p.router;
*
*/
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
@@ -20,7 +18,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import net.i2p.data.DataFormatException;
import net.i2p.data.DataHelper;
import net.i2p.data.RouterInfo;
import net.i2p.data.i2np.I2NPMessage;
diff --git a/router/java/src/net/i2p/router/RouterDoSThrottle.java b/router/java/src/net/i2p/router/RouterDoSThrottle.java
index f4919987b..c161ddda5 100644
--- a/router/java/src/net/i2p/router/RouterDoSThrottle.java
+++ b/router/java/src/net/i2p/router/RouterDoSThrottle.java
@@ -1,10 +1,6 @@
package net.i2p.router;
import net.i2p.data.Hash;
-import net.i2p.data.i2np.TunnelCreateMessage;
-import net.i2p.stat.Rate;
-import net.i2p.stat.RateStat;
-import net.i2p.util.Log;
/**
* Minor extention of the router throttle to handle some DoS events and
diff --git a/router/java/src/net/i2p/router/TunnelInfo.java b/router/java/src/net/i2p/router/TunnelInfo.java
index 024961ef1..bd427b46e 100644
--- a/router/java/src/net/i2p/router/TunnelInfo.java
+++ b/router/java/src/net/i2p/router/TunnelInfo.java
@@ -8,7 +8,6 @@ package net.i2p.router;
*
*/
-import net.i2p.data.Destination;
import net.i2p.data.Hash;
import net.i2p.data.TunnelId;
diff --git a/router/java/src/net/i2p/router/TunnelManagerFacade.java b/router/java/src/net/i2p/router/TunnelManagerFacade.java
index 112dc438e..a6a6c5b18 100644
--- a/router/java/src/net/i2p/router/TunnelManagerFacade.java
+++ b/router/java/src/net/i2p/router/TunnelManagerFacade.java
@@ -8,8 +8,6 @@ package net.i2p.router;
*
*/
-import java.util.List;
-
import net.i2p.data.Destination;
import net.i2p.data.Hash;
import net.i2p.data.TunnelId;
diff --git a/router/java/src/net/i2p/router/admin/StatsGenerator.java b/router/java/src/net/i2p/router/admin/StatsGenerator.java
index 150c1c644..97932b3c2 100644
--- a/router/java/src/net/i2p/router/admin/StatsGenerator.java
+++ b/router/java/src/net/i2p/router/admin/StatsGenerator.java
@@ -1,7 +1,6 @@
package net.i2p.router.admin;
import java.io.IOException;
-import java.io.OutputStream;
import java.io.Writer;
import java.text.DecimalFormat;
import java.util.Arrays;
diff --git a/router/java/src/net/i2p/router/message/BuildTestMessageJob.java b/router/java/src/net/i2p/router/message/BuildTestMessageJob.java
index 093748fe8..43a84845c 100644
--- a/router/java/src/net/i2p/router/message/BuildTestMessageJob.java
+++ b/router/java/src/net/i2p/router/message/BuildTestMessageJob.java
@@ -8,7 +8,6 @@ package net.i2p.router.message;
*
*/
-import java.util.Date;
import java.util.HashSet;
import java.util.Set;
diff --git a/router/java/src/net/i2p/router/message/GarlicMessageParser.java b/router/java/src/net/i2p/router/message/GarlicMessageParser.java
index 0c4d092a0..ce06df012 100644
--- a/router/java/src/net/i2p/router/message/GarlicMessageParser.java
+++ b/router/java/src/net/i2p/router/message/GarlicMessageParser.java
@@ -8,8 +8,6 @@ package net.i2p.router.message;
*
*/
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
diff --git a/router/java/src/net/i2p/router/message/GarlicMessageReceiver.java b/router/java/src/net/i2p/router/message/GarlicMessageReceiver.java
index 83adc6e4f..0f12039d3 100644
--- a/router/java/src/net/i2p/router/message/GarlicMessageReceiver.java
+++ b/router/java/src/net/i2p/router/message/GarlicMessageReceiver.java
@@ -11,14 +11,11 @@ package net.i2p.router.message;
import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
import net.i2p.data.PrivateKey;
-import net.i2p.data.RouterIdentity;
import net.i2p.data.i2np.DeliveryInstructions;
import net.i2p.data.i2np.GarlicClove;
import net.i2p.data.i2np.GarlicMessage;
import net.i2p.data.i2np.I2NPMessage;
-import net.i2p.router.JobImpl;
import net.i2p.router.LeaseSetKeys;
-import net.i2p.router.Router;
import net.i2p.router.RouterContext;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/router/message/HandleGarlicMessageJob.java b/router/java/src/net/i2p/router/message/HandleGarlicMessageJob.java
index 8c30316d7..fe881a549 100644
--- a/router/java/src/net/i2p/router/message/HandleGarlicMessageJob.java
+++ b/router/java/src/net/i2p/router/message/HandleGarlicMessageJob.java
@@ -8,24 +8,15 @@ package net.i2p.router.message;
*
*/
-import java.util.ArrayList;
-import java.util.Date;
import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
import java.util.Map;
-import java.util.Set;
-
import net.i2p.data.Hash;
import net.i2p.data.RouterIdentity;
import net.i2p.data.i2np.DeliveryInstructions;
-import net.i2p.data.i2np.GarlicClove;
import net.i2p.data.i2np.GarlicMessage;
import net.i2p.data.i2np.I2NPMessage;
import net.i2p.data.i2np.TunnelGatewayMessage;
import net.i2p.router.JobImpl;
-import net.i2p.router.LeaseSetKeys;
-import net.i2p.router.Router;
import net.i2p.router.RouterContext;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/router/message/OutboundClientMessageJobHelper.java b/router/java/src/net/i2p/router/message/OutboundClientMessageJobHelper.java
index b37eef5b3..f3632ef36 100644
--- a/router/java/src/net/i2p/router/message/OutboundClientMessageJobHelper.java
+++ b/router/java/src/net/i2p/router/message/OutboundClientMessageJobHelper.java
@@ -8,8 +8,6 @@ package net.i2p.router.message;
*
*/
-import java.util.Date;
-import java.util.List;
import java.util.Set;
import net.i2p.data.Certificate;
@@ -29,7 +27,6 @@ import net.i2p.data.i2np.I2NPMessage;
import net.i2p.router.Router;
import net.i2p.router.RouterContext;
import net.i2p.router.TunnelInfo;
-import net.i2p.router.TunnelSelectionCriteria;
import net.i2p.util.Log;
/**
diff --git a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java
index f4855ef1c..f6a1fa3fc 100644
--- a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java
+++ b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java
@@ -15,10 +15,7 @@ import net.i2p.data.Hash;
import net.i2p.data.Lease;
import net.i2p.data.LeaseSet;
import net.i2p.data.PublicKey;
-import net.i2p.data.SessionTag;
import net.i2p.data.SessionKey;
-import net.i2p.data.TunnelId;
-
import net.i2p.data.i2cp.MessageId;
import net.i2p.data.i2np.DataMessage;
diff --git a/router/java/src/net/i2p/router/message/SendMessageDirectJob.java b/router/java/src/net/i2p/router/message/SendMessageDirectJob.java
index 4f822fbd3..4a9194755 100644
--- a/router/java/src/net/i2p/router/message/SendMessageDirectJob.java
+++ b/router/java/src/net/i2p/router/message/SendMessageDirectJob.java
@@ -18,7 +18,6 @@ import net.i2p.router.JobImpl;
import net.i2p.router.MessageSelector;
import net.i2p.router.OutNetMessage;
import net.i2p.router.ReplyJob;
-import net.i2p.router.Router;
import net.i2p.router.RouterContext;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/router/networkdb/HandleDatabaseLookupMessageJob.java b/router/java/src/net/i2p/router/networkdb/HandleDatabaseLookupMessageJob.java
index 5747f8dd5..9e69e7254 100644
--- a/router/java/src/net/i2p/router/networkdb/HandleDatabaseLookupMessageJob.java
+++ b/router/java/src/net/i2p/router/networkdb/HandleDatabaseLookupMessageJob.java
@@ -8,13 +8,9 @@ package net.i2p.router.networkdb;
*
*/
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.Date;
import java.util.Iterator;
import java.util.Set;
-import net.i2p.data.DataFormatException;
import net.i2p.data.DataStructure;
import net.i2p.data.Hash;
import net.i2p.data.LeaseSet;
diff --git a/router/java/src/net/i2p/router/networkdb/HandleDatabaseStoreMessageJob.java b/router/java/src/net/i2p/router/networkdb/HandleDatabaseStoreMessageJob.java
index 12a8f0f74..080df0242 100644
--- a/router/java/src/net/i2p/router/networkdb/HandleDatabaseStoreMessageJob.java
+++ b/router/java/src/net/i2p/router/networkdb/HandleDatabaseStoreMessageJob.java
@@ -9,11 +9,8 @@ package net.i2p.router.networkdb;
*/
import java.util.Date;
-import java.util.List;
-
import net.i2p.data.Hash;
import net.i2p.data.RouterIdentity;
-import net.i2p.data.TunnelId;
import net.i2p.data.i2np.DatabaseStoreMessage;
import net.i2p.data.i2np.DeliveryStatusMessage;
import net.i2p.router.JobImpl;
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/ExploreJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/ExploreJob.java
index c0be880b7..2a2da6a04 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/ExploreJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/ExploreJob.java
@@ -8,11 +8,7 @@ package net.i2p.router.networkdb.kademlia;
*
*/
-import java.util.Date;
-import java.util.HashSet;
import java.util.List;
-import java.util.Set;
-
import net.i2p.data.Hash;
import net.i2p.data.RouterInfo;
import net.i2p.data.TunnelId;
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/HarvesterJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/HarvesterJob.java
index 5c43982e6..164192a5e 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/HarvesterJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/HarvesterJob.java
@@ -1,7 +1,6 @@
package net.i2p.router.networkdb.kademlia;
import java.util.ArrayList;
-import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
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 8b5504a4b..dee128f6e 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
@@ -12,13 +12,11 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.Writer;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
@@ -34,7 +32,6 @@ import net.i2p.data.RouterInfo;
import net.i2p.data.i2np.DatabaseLookupMessage;
import net.i2p.data.i2np.DatabaseStoreMessage;
import net.i2p.router.Job;
-import net.i2p.router.JobImpl;
import net.i2p.router.NetworkDatabaseFacade;
import net.i2p.router.Router;
import net.i2p.router.RouterContext;
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java b/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java
index 83716e975..68af74791 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java
@@ -21,7 +21,6 @@ import net.i2p.data.Hash;
import net.i2p.data.LeaseSet;
import net.i2p.data.RouterInfo;
import net.i2p.router.JobImpl;
-import net.i2p.router.Router;
import net.i2p.router.RouterContext;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java
index 489febb37..9688e1a4c 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java
@@ -9,7 +9,6 @@ package net.i2p.router.networkdb.kademlia;
*/
import java.util.ArrayList;
-import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -25,9 +24,7 @@ import net.i2p.router.Job;
import net.i2p.router.JobImpl;
import net.i2p.router.RouterContext;
import net.i2p.router.TunnelInfo;
-import net.i2p.router.TunnelSelectionCriteria;
import net.i2p.router.message.SendMessageDirectJob;
-import net.i2p.router.peermanager.PeerProfile;
import net.i2p.util.Log;
/**
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/SearchState.java b/router/java/src/net/i2p/router/networkdb/kademlia/SearchState.java
index 6c3df5862..bf2e161aa 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/SearchState.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/SearchState.java
@@ -8,7 +8,6 @@ import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
-import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
import net.i2p.router.RouterContext;
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/StoreJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/StoreJob.java
index 706d1420f..0f71b172a 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/StoreJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/StoreJob.java
@@ -8,7 +8,6 @@ package net.i2p.router.networkdb.kademlia;
*
*/
-import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
diff --git a/router/java/src/net/i2p/router/peermanager/IsFailingCalculator.java b/router/java/src/net/i2p/router/peermanager/IsFailingCalculator.java
index fc3f69ecb..f2607bea3 100644
--- a/router/java/src/net/i2p/router/peermanager/IsFailingCalculator.java
+++ b/router/java/src/net/i2p/router/peermanager/IsFailingCalculator.java
@@ -1,7 +1,6 @@
package net.i2p.router.peermanager;
import net.i2p.router.RouterContext;
-import net.i2p.stat.Rate;
import net.i2p.util.Log;
/**
diff --git a/router/java/src/net/i2p/router/peermanager/PeerManager.java b/router/java/src/net/i2p/router/peermanager/PeerManager.java
index b6d9f42e0..68aa11e9b 100644
--- a/router/java/src/net/i2p/router/peermanager/PeerManager.java
+++ b/router/java/src/net/i2p/router/peermanager/PeerManager.java
@@ -14,7 +14,6 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
-import java.util.TreeMap;
import java.util.Set;
import net.i2p.data.Hash;
diff --git a/router/java/src/net/i2p/router/peermanager/PeerManagerFacadeImpl.java b/router/java/src/net/i2p/router/peermanager/PeerManagerFacadeImpl.java
index 13b0adf1e..6f89c5a39 100644
--- a/router/java/src/net/i2p/router/peermanager/PeerManagerFacadeImpl.java
+++ b/router/java/src/net/i2p/router/peermanager/PeerManagerFacadeImpl.java
@@ -10,7 +10,6 @@ package net.i2p.router.peermanager;
import java.io.IOException;
import java.io.Writer;
-import java.util.ArrayList;
import java.util.List;
import net.i2p.router.PeerManagerFacade;
diff --git a/router/java/src/net/i2p/router/peermanager/PeerTestJob.java b/router/java/src/net/i2p/router/peermanager/PeerTestJob.java
index 676b1cd7d..5463a9465 100644
--- a/router/java/src/net/i2p/router/peermanager/PeerTestJob.java
+++ b/router/java/src/net/i2p/router/peermanager/PeerTestJob.java
@@ -1,6 +1,5 @@
package net.i2p.router.peermanager;
-import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
diff --git a/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java b/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
index e5d3eca93..68b5b9211 100644
--- a/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
+++ b/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
@@ -7,7 +7,6 @@ import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -16,10 +15,8 @@ import java.util.Locale;
import java.util.Map;
import java.util.Random;
import java.util.Set;
-import java.util.TreeMap;
import java.util.TreeSet;
-import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
import net.i2p.router.RouterContext;
import net.i2p.router.NetworkDatabaseFacade;
diff --git a/router/java/src/net/i2p/router/peermanager/ProfileOrganizerRenderer.java b/router/java/src/net/i2p/router/peermanager/ProfileOrganizerRenderer.java
index 5e29cda78..8ec6a937f 100644
--- a/router/java/src/net/i2p/router/peermanager/ProfileOrganizerRenderer.java
+++ b/router/java/src/net/i2p/router/peermanager/ProfileOrganizerRenderer.java
@@ -8,7 +8,6 @@ import java.text.DecimalFormatSymbols;
import java.util.Iterator;
import java.util.Locale;
-import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
diff --git a/router/java/src/net/i2p/router/peermanager/ProfilePersistenceHelper.java b/router/java/src/net/i2p/router/peermanager/ProfilePersistenceHelper.java
index aa9c5e932..ebb21a482 100644
--- a/router/java/src/net/i2p/router/peermanager/ProfilePersistenceHelper.java
+++ b/router/java/src/net/i2p/router/peermanager/ProfilePersistenceHelper.java
@@ -1,13 +1,11 @@
package net.i2p.router.peermanager;
import java.io.BufferedOutputStream;
-import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
-import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.HashSet;
import java.util.Iterator;
diff --git a/router/java/src/net/i2p/router/startup/ReadConfigJob.java b/router/java/src/net/i2p/router/startup/ReadConfigJob.java
index a1e9f484b..4059822b8 100644
--- a/router/java/src/net/i2p/router/startup/ReadConfigJob.java
+++ b/router/java/src/net/i2p/router/startup/ReadConfigJob.java
@@ -9,15 +9,8 @@ package net.i2p.router.startup;
*/
import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.Properties;
-
import net.i2p.router.JobImpl;
-import net.i2p.router.Router;
import net.i2p.router.RouterContext;
-import net.i2p.util.Log;
/**
* Simply read the router config
diff --git a/router/java/src/net/i2p/router/transport/GetBidsJob.java b/router/java/src/net/i2p/router/transport/GetBidsJob.java
index ea054f890..b1f572755 100644
--- a/router/java/src/net/i2p/router/transport/GetBidsJob.java
+++ b/router/java/src/net/i2p/router/transport/GetBidsJob.java
@@ -8,8 +8,6 @@ package net.i2p.router.transport;
*
*/
-import java.util.List;
-
import net.i2p.data.Hash;
import net.i2p.router.JobImpl;
import net.i2p.router.MessageSelector;
diff --git a/router/java/src/net/i2p/router/transport/OutboundMessageRegistry.java b/router/java/src/net/i2p/router/transport/OutboundMessageRegistry.java
index 3d241d395..281227c55 100644
--- a/router/java/src/net/i2p/router/transport/OutboundMessageRegistry.java
+++ b/router/java/src/net/i2p/router/transport/OutboundMessageRegistry.java
@@ -20,7 +20,6 @@ import java.util.TreeMap;
import net.i2p.data.Hash;
import net.i2p.data.i2np.I2NPMessage;
import net.i2p.router.Job;
-import net.i2p.router.JobImpl;
import net.i2p.router.MessageSelector;
import net.i2p.router.OutNetMessage;
import net.i2p.router.ReplyJob;
diff --git a/router/java/src/net/i2p/router/transport/Transport.java b/router/java/src/net/i2p/router/transport/Transport.java
index f9b5c5821..344e8427e 100644
--- a/router/java/src/net/i2p/router/transport/Transport.java
+++ b/router/java/src/net/i2p/router/transport/Transport.java
@@ -9,7 +9,6 @@ package net.i2p.router.transport;
*/
import java.util.List;
-import java.util.Properties;
import java.util.Set;
import net.i2p.data.RouterAddress;
diff --git a/router/java/src/net/i2p/router/transport/TransportImpl.java b/router/java/src/net/i2p/router/transport/TransportImpl.java
index 1cdb6fb42..147ad38d9 100644
--- a/router/java/src/net/i2p/router/transport/TransportImpl.java
+++ b/router/java/src/net/i2p/router/transport/TransportImpl.java
@@ -19,7 +19,6 @@ import java.util.Set;
import net.i2p.data.Hash;
import net.i2p.data.RouterAddress;
import net.i2p.data.RouterIdentity;
-import net.i2p.data.RouterInfo;
import net.i2p.data.i2np.I2NPMessage;
import net.i2p.router.Job;
import net.i2p.router.MessageSelector;
diff --git a/router/java/src/net/i2p/router/transport/TransportManager.java b/router/java/src/net/i2p/router/transport/TransportManager.java
index c732648f8..a03ea9c9e 100644
--- a/router/java/src/net/i2p/router/transport/TransportManager.java
+++ b/router/java/src/net/i2p/router/transport/TransportManager.java
@@ -11,21 +11,12 @@ package net.i2p.router.transport;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.Set;
-import java.util.TreeMap;
-
import net.i2p.data.Hash;
import net.i2p.data.RouterAddress;
import net.i2p.data.RouterIdentity;
-import net.i2p.data.RouterInfo;
-import net.i2p.data.i2np.DatabaseLookupMessage;
-import net.i2p.data.i2np.DatabaseSearchReplyMessage;
-import net.i2p.data.i2np.DatabaseStoreMessage;
import net.i2p.data.i2np.I2NPMessage;
import net.i2p.router.OutNetMessage;
import net.i2p.router.RouterContext;
diff --git a/router/java/src/net/i2p/router/transport/tcp/ConnectionBuilder.java b/router/java/src/net/i2p/router/transport/tcp/ConnectionBuilder.java
index f1c8e6510..af06802c1 100644
--- a/router/java/src/net/i2p/router/transport/tcp/ConnectionBuilder.java
+++ b/router/java/src/net/i2p/router/transport/tcp/ConnectionBuilder.java
@@ -6,12 +6,9 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.math.BigInteger;
import java.net.Socket;
import java.net.SocketException;
import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
import java.util.Properties;
import net.i2p.crypto.AESInputStream;
@@ -31,7 +28,6 @@ import net.i2p.router.transport.BandwidthLimitedInputStream;
import net.i2p.router.transport.BandwidthLimitedOutputStream;
import net.i2p.util.I2PThread;
import net.i2p.util.Log;
-import net.i2p.util.NativeBigInteger;
import net.i2p.util.SimpleTimer;
/**
diff --git a/router/java/src/net/i2p/router/transport/tcp/ConnectionHandler.java b/router/java/src/net/i2p/router/transport/tcp/ConnectionHandler.java
index 832830569..249a3265f 100644
--- a/router/java/src/net/i2p/router/transport/tcp/ConnectionHandler.java
+++ b/router/java/src/net/i2p/router/transport/tcp/ConnectionHandler.java
@@ -31,7 +31,6 @@ import net.i2p.router.RouterContext;
import net.i2p.router.transport.BandwidthLimitedInputStream;
import net.i2p.router.transport.BandwidthLimitedOutputStream;
import net.i2p.util.Log;
-import net.i2p.util.NativeBigInteger;
/**
* Class responsible for all of the handshaking necessary to turn a socket into
diff --git a/router/java/src/net/i2p/router/transport/tcp/ConnectionRunner.java b/router/java/src/net/i2p/router/transport/tcp/ConnectionRunner.java
index 385b4f86e..7c248c372 100644
--- a/router/java/src/net/i2p/router/transport/tcp/ConnectionRunner.java
+++ b/router/java/src/net/i2p/router/transport/tcp/ConnectionRunner.java
@@ -2,15 +2,11 @@ package net.i2p.router.transport.tcp;
import java.io.IOException;
import java.io.OutputStream;
-import java.util.Date;
-
import net.i2p.data.DataHelper;
-import net.i2p.data.DataFormatException;
import net.i2p.data.RouterInfo;
import net.i2p.data.i2np.I2NPMessage;
import net.i2p.data.i2np.DateMessage;
import net.i2p.router.OutNetMessage;
-import net.i2p.router.Router;
import net.i2p.router.RouterContext;
import net.i2p.util.I2PThread;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/router/transport/tcp/ConnectionTagManager.java b/router/java/src/net/i2p/router/transport/tcp/ConnectionTagManager.java
index 2b57c3c06..a9eca953a 100644
--- a/router/java/src/net/i2p/router/transport/tcp/ConnectionTagManager.java
+++ b/router/java/src/net/i2p/router/transport/tcp/ConnectionTagManager.java
@@ -1,7 +1,6 @@
package net.i2p.router.transport.tcp;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
import net.i2p.data.ByteArray;
diff --git a/router/java/src/net/i2p/router/transport/tcp/TCPConnection.java b/router/java/src/net/i2p/router/transport/tcp/TCPConnection.java
index d126dafc4..3da0b01f1 100644
--- a/router/java/src/net/i2p/router/transport/tcp/TCPConnection.java
+++ b/router/java/src/net/i2p/router/transport/tcp/TCPConnection.java
@@ -12,7 +12,6 @@ import java.util.List;
import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
import net.i2p.data.RouterIdentity;
-import net.i2p.data.RouterInfo;
import net.i2p.data.i2np.I2NPMessageReader;
import net.i2p.router.OutNetMessage;
import net.i2p.router.RouterContext;
diff --git a/router/java/src/net/i2p/router/transport/tcp/TCPListener.java b/router/java/src/net/i2p/router/transport/tcp/TCPListener.java
index 198f55888..524d33c96 100644
--- a/router/java/src/net/i2p/router/transport/tcp/TCPListener.java
+++ b/router/java/src/net/i2p/router/transport/tcp/TCPListener.java
@@ -9,7 +9,6 @@ package net.i2p.router.transport.tcp;
*/
import java.io.IOException;
-import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
diff --git a/router/java/src/net/i2p/router/tunnel/FragmentTest.java b/router/java/src/net/i2p/router/tunnel/FragmentTest.java
index faa0795a8..81cee4f75 100644
--- a/router/java/src/net/i2p/router/tunnel/FragmentTest.java
+++ b/router/java/src/net/i2p/router/tunnel/FragmentTest.java
@@ -1,16 +1,12 @@
package net.i2p.router.tunnel;
import java.util.ArrayList;
-import java.util.Date;
-
import net.i2p.I2PAppContext;
import net.i2p.data.Base64;
-import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
import net.i2p.data.TunnelId;
import net.i2p.data.i2np.DataMessage;
import net.i2p.data.i2np.I2NPMessage;
-import net.i2p.data.i2np.I2NPMessageHandler;
import net.i2p.util.Log;
/**
diff --git a/router/java/src/net/i2p/router/tunnel/FragmentedMessage.java b/router/java/src/net/i2p/router/tunnel/FragmentedMessage.java
index cce537f39..266fe6eec 100644
--- a/router/java/src/net/i2p/router/tunnel/FragmentedMessage.java
+++ b/router/java/src/net/i2p/router/tunnel/FragmentedMessage.java
@@ -3,10 +3,6 @@ package net.i2p.router.tunnel;
import java.io.IOException;
import java.io.OutputStream;
import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Date;
-
import net.i2p.I2PAppContext;
import net.i2p.data.Base64;
import net.i2p.data.ByteArray;
diff --git a/router/java/src/net/i2p/router/tunnel/HopProcessor.java b/router/java/src/net/i2p/router/tunnel/HopProcessor.java
index fd397264e..69e1a3404 100644
--- a/router/java/src/net/i2p/router/tunnel/HopProcessor.java
+++ b/router/java/src/net/i2p/router/tunnel/HopProcessor.java
@@ -1,7 +1,6 @@
package net.i2p.router.tunnel;
import net.i2p.I2PAppContext;
-import net.i2p.data.Base64;
import net.i2p.data.ByteArray;
import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
diff --git a/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java b/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java
index 690aa3fcc..97a2574d5 100644
--- a/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java
+++ b/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java
@@ -1,9 +1,7 @@
package net.i2p.router.tunnel;
import net.i2p.I2PAppContext;
-import net.i2p.data.Base64;
import net.i2p.data.ByteArray;
-import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
import net.i2p.util.ByteCache;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/router/tunnel/InboundGatewayProcessor.java b/router/java/src/net/i2p/router/tunnel/InboundGatewayProcessor.java
index 2e0350cb5..541425b47 100644
--- a/router/java/src/net/i2p/router/tunnel/InboundGatewayProcessor.java
+++ b/router/java/src/net/i2p/router/tunnel/InboundGatewayProcessor.java
@@ -1,8 +1,6 @@
package net.i2p.router.tunnel;
import net.i2p.I2PAppContext;
-import net.i2p.data.Hash;
-import net.i2p.util.Log;
/**
* Override the hop processor to seed the message with a random
diff --git a/router/java/src/net/i2p/router/tunnel/InboundGatewayTest.java b/router/java/src/net/i2p/router/tunnel/InboundGatewayTest.java
index 5bbe69daf..0fa680792 100644
--- a/router/java/src/net/i2p/router/tunnel/InboundGatewayTest.java
+++ b/router/java/src/net/i2p/router/tunnel/InboundGatewayTest.java
@@ -1,13 +1,10 @@
package net.i2p.router.tunnel;
import java.util.ArrayList;
-import java.util.Date;
import java.util.List;
import net.i2p.I2PAppContext;
import net.i2p.data.Base64;
-import net.i2p.data.ByteArray;
-import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
import net.i2p.data.TunnelId;
import net.i2p.data.i2np.DataMessage;
diff --git a/router/java/src/net/i2p/router/tunnel/InboundMessageDistributor.java b/router/java/src/net/i2p/router/tunnel/InboundMessageDistributor.java
index 53713dcb3..145d044ea 100644
--- a/router/java/src/net/i2p/router/tunnel/InboundMessageDistributor.java
+++ b/router/java/src/net/i2p/router/tunnel/InboundMessageDistributor.java
@@ -1,19 +1,14 @@
package net.i2p.router.tunnel;
-import java.util.Date;
import net.i2p.data.Hash;
import net.i2p.data.TunnelId;
-import net.i2p.data.RouterInfo;
import net.i2p.data.Payload;
import net.i2p.data.i2np.DataMessage;
import net.i2p.data.i2np.DeliveryInstructions;
import net.i2p.data.i2np.I2NPMessage;
import net.i2p.data.i2np.GarlicMessage;
-import net.i2p.data.i2np.GarlicClove;
import net.i2p.data.i2np.TunnelGatewayMessage;
import net.i2p.router.ClientMessage;
-import net.i2p.router.JobImpl;
-import net.i2p.router.OutNetMessage;
import net.i2p.router.RouterContext;
import net.i2p.router.TunnelInfo;
import net.i2p.router.message.GarlicMessageReceiver;
diff --git a/router/java/src/net/i2p/router/tunnel/InboundSender.java b/router/java/src/net/i2p/router/tunnel/InboundSender.java
index 8de5d58a4..59dd39dee 100644
--- a/router/java/src/net/i2p/router/tunnel/InboundSender.java
+++ b/router/java/src/net/i2p/router/tunnel/InboundSender.java
@@ -1,7 +1,6 @@
package net.i2p.router.tunnel;
import net.i2p.I2PAppContext;
-import net.i2p.data.Base64;
import net.i2p.util.Log;
/**
diff --git a/router/java/src/net/i2p/router/tunnel/InboundTest.java b/router/java/src/net/i2p/router/tunnel/InboundTest.java
index f223c4efe..6ee00f869 100644
--- a/router/java/src/net/i2p/router/tunnel/InboundTest.java
+++ b/router/java/src/net/i2p/router/tunnel/InboundTest.java
@@ -4,7 +4,6 @@ import net.i2p.I2PAppContext;
import net.i2p.data.Base64;
import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
-import net.i2p.data.SessionKey;
import net.i2p.util.Log;
/**
diff --git a/router/java/src/net/i2p/router/tunnel/OutboundGatewayProcessor.java b/router/java/src/net/i2p/router/tunnel/OutboundGatewayProcessor.java
index 31b813341..4aa706cec 100644
--- a/router/java/src/net/i2p/router/tunnel/OutboundGatewayProcessor.java
+++ b/router/java/src/net/i2p/router/tunnel/OutboundGatewayProcessor.java
@@ -4,7 +4,6 @@ import net.i2p.I2PAppContext;
import net.i2p.data.Base64;
import net.i2p.data.ByteArray;
import net.i2p.data.DataHelper;
-import net.i2p.data.Hash;
import net.i2p.util.ByteCache;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/router/tunnel/OutboundGatewayTest.java b/router/java/src/net/i2p/router/tunnel/OutboundGatewayTest.java
index b3d19bb7e..e88d8d13b 100644
--- a/router/java/src/net/i2p/router/tunnel/OutboundGatewayTest.java
+++ b/router/java/src/net/i2p/router/tunnel/OutboundGatewayTest.java
@@ -1,13 +1,10 @@
package net.i2p.router.tunnel;
import java.util.ArrayList;
-import java.util.Date;
import java.util.List;
import net.i2p.I2PAppContext;
import net.i2p.data.Base64;
-import net.i2p.data.ByteArray;
-import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
import net.i2p.data.TunnelId;
import net.i2p.data.i2np.DataMessage;
diff --git a/router/java/src/net/i2p/router/tunnel/OutboundReceiver.java b/router/java/src/net/i2p/router/tunnel/OutboundReceiver.java
index 8703a6928..e84b57059 100644
--- a/router/java/src/net/i2p/router/tunnel/OutboundReceiver.java
+++ b/router/java/src/net/i2p/router/tunnel/OutboundReceiver.java
@@ -1,6 +1,5 @@
package net.i2p.router.tunnel;
-import net.i2p.data.Hash;
import net.i2p.data.RouterInfo;
import net.i2p.data.i2np.TunnelDataMessage;
import net.i2p.router.JobImpl;
diff --git a/router/java/src/net/i2p/router/tunnel/OutboundTest.java b/router/java/src/net/i2p/router/tunnel/OutboundTest.java
index bed83a9ca..d8d75f05e 100644
--- a/router/java/src/net/i2p/router/tunnel/OutboundTest.java
+++ b/router/java/src/net/i2p/router/tunnel/OutboundTest.java
@@ -4,7 +4,6 @@ import net.i2p.I2PAppContext;
import net.i2p.data.Base64;
import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
-import net.i2p.data.SessionKey;
import net.i2p.util.Log;
/**
diff --git a/router/java/src/net/i2p/router/tunnel/OutboundTunnelEndpoint.java b/router/java/src/net/i2p/router/tunnel/OutboundTunnelEndpoint.java
index 2bc8d9e2c..e641f50cb 100644
--- a/router/java/src/net/i2p/router/tunnel/OutboundTunnelEndpoint.java
+++ b/router/java/src/net/i2p/router/tunnel/OutboundTunnelEndpoint.java
@@ -1,13 +1,9 @@
package net.i2p.router.tunnel;
import net.i2p.data.Hash;
-import net.i2p.data.RouterInfo;
import net.i2p.data.TunnelId;
import net.i2p.data.i2np.I2NPMessage;
import net.i2p.data.i2np.TunnelDataMessage;
-import net.i2p.data.i2np.TunnelGatewayMessage;
-import net.i2p.router.JobImpl;
-import net.i2p.router.OutNetMessage;
import net.i2p.router.RouterContext;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/router/tunnel/TrivialPreprocessor.java b/router/java/src/net/i2p/router/tunnel/TrivialPreprocessor.java
index 1134b64cd..a29ea9644 100644
--- a/router/java/src/net/i2p/router/tunnel/TrivialPreprocessor.java
+++ b/router/java/src/net/i2p/router/tunnel/TrivialPreprocessor.java
@@ -9,7 +9,6 @@ import net.i2p.data.Base64;
import net.i2p.data.ByteArray;
import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
-import net.i2p.data.i2np.I2NPMessage;
import net.i2p.util.ByteCache;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/router/tunnel/TunnelCreatorConfig.java b/router/java/src/net/i2p/router/tunnel/TunnelCreatorConfig.java
index 723aa2b60..715544e42 100644
--- a/router/java/src/net/i2p/router/tunnel/TunnelCreatorConfig.java
+++ b/router/java/src/net/i2p/router/tunnel/TunnelCreatorConfig.java
@@ -5,7 +5,6 @@ import java.util.Locale;
import java.text.SimpleDateFormat;
import net.i2p.data.Base64;
-import net.i2p.data.Destination;
import net.i2p.data.Hash;
import net.i2p.data.TunnelId;
import net.i2p.router.TunnelInfo;
diff --git a/router/java/src/net/i2p/router/tunnel/TunnelDispatcher.java b/router/java/src/net/i2p/router/tunnel/TunnelDispatcher.java
index 3875baa28..04e991b1e 100644
--- a/router/java/src/net/i2p/router/tunnel/TunnelDispatcher.java
+++ b/router/java/src/net/i2p/router/tunnel/TunnelDispatcher.java
@@ -11,13 +11,11 @@ import net.i2p.router.RouterContext;
import net.i2p.data.DataHelper;
import net.i2p.data.Hash;
import net.i2p.data.TunnelId;
-import net.i2p.data.RouterInfo;
import net.i2p.data.i2np.I2NPMessage;
import net.i2p.data.i2np.TunnelDataMessage;
import net.i2p.data.i2np.TunnelGatewayMessage;
import net.i2p.router.JobImpl;
import net.i2p.router.Router;
-import net.i2p.router.RouterContext;
import net.i2p.router.Service;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/router/tunnel/TunnelGatewayZeroHop.java b/router/java/src/net/i2p/router/tunnel/TunnelGatewayZeroHop.java
index 18ce4d66a..a15ee91d8 100644
--- a/router/java/src/net/i2p/router/tunnel/TunnelGatewayZeroHop.java
+++ b/router/java/src/net/i2p/router/tunnel/TunnelGatewayZeroHop.java
@@ -1,15 +1,11 @@
package net.i2p.router.tunnel;
-import java.util.ArrayList;
-import java.util.List;
-
import net.i2p.data.Hash;
import net.i2p.data.TunnelId;
import net.i2p.data.i2np.I2NPMessage;
import net.i2p.data.i2np.TunnelGatewayMessage;
import net.i2p.router.RouterContext;
import net.i2p.util.Log;
-import net.i2p.util.SimpleTimer;
/**
* Serve as the gatekeeper for a tunnel with no hops.
diff --git a/router/java/src/net/i2p/router/tunnel/TunnelParticipant.java b/router/java/src/net/i2p/router/tunnel/TunnelParticipant.java
index 145496f70..6f36fed4d 100644
--- a/router/java/src/net/i2p/router/tunnel/TunnelParticipant.java
+++ b/router/java/src/net/i2p/router/tunnel/TunnelParticipant.java
@@ -1,7 +1,5 @@
package net.i2p.router.tunnel;
-import java.util.Date;
-
import net.i2p.data.Hash;
import net.i2p.data.RouterInfo;
import net.i2p.data.TunnelId;
diff --git a/router/java/src/net/i2p/router/tunnel/pool/OnCreatedJob.java b/router/java/src/net/i2p/router/tunnel/pool/OnCreatedJob.java
index 4dc86f65f..74eaee0d7 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/OnCreatedJob.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/OnCreatedJob.java
@@ -2,7 +2,6 @@ package net.i2p.router.tunnel.pool;
import net.i2p.router.JobImpl;
import net.i2p.router.RouterContext;
-import net.i2p.router.tunnel.TunnelCreatorConfig;
import net.i2p.util.Log;
/**
diff --git a/router/java/src/net/i2p/router/tunnel/pool/SendGarlicMessageJob.java b/router/java/src/net/i2p/router/tunnel/pool/SendGarlicMessageJob.java
index 04193937a..48a075d6e 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/SendGarlicMessageJob.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/SendGarlicMessageJob.java
@@ -1,13 +1,10 @@
package net.i2p.router.tunnel.pool;
-import java.util.HashSet;
import java.util.Set;
import net.i2p.data.Certificate;
-import net.i2p.data.Hash;
import net.i2p.data.RouterInfo;
import net.i2p.data.SessionKey;
-import net.i2p.data.SessionTag;
import net.i2p.data.TunnelId;
import net.i2p.data.i2np.DeliveryInstructions;
import net.i2p.data.i2np.GarlicMessage;
diff --git a/router/java/src/net/i2p/router/tunnel/pool/TestJob.java b/router/java/src/net/i2p/router/tunnel/pool/TestJob.java
index 1c7517098..b7d10e61b 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/TestJob.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/TestJob.java
@@ -1,6 +1,5 @@
package net.i2p.router.tunnel.pool;
-import java.util.Date;
import java.util.HashSet;
import java.util.Set;
@@ -18,7 +17,6 @@ import net.i2p.router.RouterContext;
import net.i2p.router.TunnelInfo;
import net.i2p.router.message.PayloadGarlicConfig;
import net.i2p.router.message.GarlicMessageBuilder;
-import net.i2p.router.tunnel.TunnelCreatorConfig;
import net.i2p.util.Log;
class TestJob extends JobImpl {
diff --git a/router/java/src/net/i2p/router/tunnel/pool/TunnelBuilder.java b/router/java/src/net/i2p/router/tunnel/pool/TunnelBuilder.java
index 09f48eeca..ec9caebda 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/TunnelBuilder.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelBuilder.java
@@ -4,15 +4,9 @@ import java.util.ArrayList;
import java.util.List;
import net.i2p.data.Hash;
-import net.i2p.data.SessionKey;
-import net.i2p.data.SessionTag;
-import net.i2p.stat.Rate;
-import net.i2p.stat.RateStat;
import net.i2p.router.RouterContext;
import net.i2p.router.JobImpl;
import net.i2p.router.tunnel.HopConfig;
-import net.i2p.router.tunnel.TunnelCreatorConfig;
-import net.i2p.router.tunnel.TunnelGateway;
import net.i2p.router.TunnelPoolSettings;
import net.i2p.util.Log;
diff --git a/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java b/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java
index a323f0d46..9a8f94468 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java
@@ -13,15 +13,11 @@ import net.i2p.data.Destination;
import net.i2p.data.Hash;
import net.i2p.data.TunnelId;
import net.i2p.data.i2np.TunnelCreateMessage;
-import net.i2p.data.i2np.TunnelDataMessage;
-import net.i2p.data.i2np.TunnelGatewayMessage;
import net.i2p.stat.RateStat;
import net.i2p.router.ClientTunnelSettings;
import net.i2p.router.HandlerJobBuilder;
import net.i2p.router.JobImpl;
-import net.i2p.router.Router;
import net.i2p.router.RouterContext;
-import net.i2p.router.TunnelSelectionCriteria;
import net.i2p.router.TunnelInfo;
import net.i2p.router.TunnelManagerFacade;
import net.i2p.router.TunnelPoolSettings;