diff --git a/apps/routerconsole/java/src/net/i2p/router/update/ConsoleUpdateManager.java b/apps/routerconsole/java/src/net/i2p/router/update/ConsoleUpdateManager.java
index 538655495..7ba50c305 100644
--- a/apps/routerconsole/java/src/net/i2p/router/update/ConsoleUpdateManager.java
+++ b/apps/routerconsole/java/src/net/i2p/router/update/ConsoleUpdateManager.java
@@ -1,13 +1,15 @@
package net.i2p.router.update;
-import java.io.ByteArrayInputStream;
import java.io.File;
+import java.io.IOException;
+import java.io.Writer;
import java.net.URI;
import java.net.URISyntaxException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.Comparator;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
@@ -1111,7 +1113,7 @@ public class ConsoleUpdateManager implements UpdateManager {
@Override
public String toString() {
- return "RegisteredUpdater " + updater.getClass() + " for " + type + ' ' + method + " @pri " + priority;
+ return "RegisteredUpdater " + updater.getClass().getName() + " for " + type + ' ' + method + " @pri " + priority;
}
}
@@ -1152,7 +1154,7 @@ public class ConsoleUpdateManager implements UpdateManager {
@Override
public String toString() {
- return "RegisteredChecker " + checker.getClass() + " for " + type + ' ' + method + " @pri " + priority;
+ return "RegisteredChecker " + checker.getClass().getName() + " for " + type + ' ' + method + " @pri " + priority;
}
}
@@ -1223,4 +1225,51 @@ public class ConsoleUpdateManager implements UpdateManager {
return "VersionAvailable \"" + version + "\" " + sourceMap;
}
}
+
+ /** debug */
+ public void renderStatusHTML(Writer out) throws IOException {
+ StringBuilder buf = new StringBuilder(1024);
+ buf.append("
Update Manager
");
+ buf.append("Installed
");
+ toString(buf, _installed);
+ buf.append("Available
");
+ toString(buf, _available);
+ buf.append("Downloaded
");
+ toString(buf, _downloaded);
+ buf.append("Registered Checkers
");
+ toString(buf, _registeredCheckers);
+ buf.append("Registered Updaters
");
+ toString(buf, _registeredUpdaters);
+ buf.append("Active Checkers
");
+ toString(buf, _activeCheckers);
+ buf.append("Active Updaters
");
+ toString(buf, _downloaders);
+ out.write(buf.toString());
+ }
+
+ /** debug */
+ private static void toString(StringBuilder buf, Collection col) {
+ List list = new ArrayList(col.size());
+ for (Object o : col) {
+ list.add(o.toString());
+ }
+ Collections.sort(list);
+ for (String e : list) {
+ buf.append("[").append(e).append("]
");
+ }
+ }
+
+ /** debug */
+ private static void toString(StringBuilder buf, Map, ?> map) {
+ List list = new ArrayList(map.size());
+ for (Map.Entry entry : map.entrySet()) {
+ String key = entry.getKey().toString();
+ String val = entry.getValue().toString();
+ list.add("[" + key + "] = [" + val + "]
");
+ }
+ Collections.sort(list);
+ for (String e : list) {
+ buf.append(e);
+ }
+ }
}
diff --git a/apps/routerconsole/jsp/debug.jsp b/apps/routerconsole/jsp/debug.jsp
index 6da4cce61..9f39b840e 100644
--- a/apps/routerconsole/jsp/debug.jsp
+++ b/apps/routerconsole/jsp/debug.jsp
@@ -13,7 +13,7 @@
<%@include file="summaryajax.jsi" %>
<%@include file="summary.jsi" %>
-Router SKM
+Router Debug
<%
/*
@@ -21,10 +21,15 @@
*/
net.i2p.router.RouterContext ctx = (net.i2p.router.RouterContext) net.i2p.I2PAppContext.getGlobalContext();
+ /*
+ * Print out the status for the UpdateManager
+ */
+ ctx.updateManager().renderStatusHTML(out);
+
/*
* Print out the status for all the SessionKeyManagers
*/
-
+ out.print("
Router SKM
");
ctx.sessionKeyManager().renderStatusHTML(out);
java.util.Set clients = ctx.clientManager().listClients();
for (net.i2p.data.Destination dest : clients) {
diff --git a/core/java/src/net/i2p/update/UpdateManager.java b/core/java/src/net/i2p/update/UpdateManager.java
index eae698de4..5f609f547 100644
--- a/core/java/src/net/i2p/update/UpdateManager.java
+++ b/core/java/src/net/i2p/update/UpdateManager.java
@@ -1,6 +1,8 @@
package net.i2p.update;
import java.io.File;
+import java.io.IOException;
+import java.io.Writer;
import java.net.URI;
import java.util.List;
@@ -79,4 +81,9 @@ public interface UpdateManager {
* @return true if valid, false if corrupt
*/
public boolean notifyComplete(UpdateTask task, String actualVersion, File file);
+
+ /**
+ * For debugging
+ */
+ public void renderStatusHTML(Writer out) throws IOException;
}
diff --git a/core/java/src/net/i2p/util/VersionComparator.java b/core/java/src/net/i2p/util/VersionComparator.java
index 8c72252fc..ad7c20a09 100644
--- a/core/java/src/net/i2p/util/VersionComparator.java
+++ b/core/java/src/net/i2p/util/VersionComparator.java
@@ -46,10 +46,9 @@ public class VersionComparator implements Comparator {
} catch (NumberFormatException nfe) {
return 1;
}
- long diff = left - right;
- if (diff < 0)
+ if (left < right)
return -1;
- if (diff > 0)
+ if (left > right)
return 1;
return 0;
}