From 1538e6ec4ef3adab77aaafa5e4c6cb04014763c9 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Mon, 22 Oct 2012 17:13:23 +0000 Subject: [PATCH] - Fix VersionComparator (thx zab) - Add debug output --- .../router/update/ConsoleUpdateManager.java | 55 ++++++++++++++++++- apps/routerconsole/jsp/debug.jsp | 9 ++- .../src/net/i2p/update/UpdateManager.java | 7 +++ .../src/net/i2p/util/VersionComparator.java | 5 +- 4 files changed, 68 insertions(+), 8 deletions(-) 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 5386554954..7ba50c305e 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("<h2>Update Manager</h2>"); + buf.append("<h3>Installed</h3>"); + toString(buf, _installed); + buf.append("<h3>Available</h3>"); + toString(buf, _available); + buf.append("<h3>Downloaded</h3>"); + toString(buf, _downloaded); + buf.append("<h3>Registered Checkers</h3>"); + toString(buf, _registeredCheckers); + buf.append("<h3>Registered Updaters</h3>"); + toString(buf, _registeredUpdaters); + buf.append("<h3>Active Checkers</h3>"); + toString(buf, _activeCheckers); + buf.append("<h3>Active Updaters</h3>"); + toString(buf, _downloaders); + out.write(buf.toString()); + } + + /** debug */ + private static void toString(StringBuilder buf, Collection col) { + List<String> 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("]<br>"); + } + } + + /** debug */ + private static void toString(StringBuilder buf, Map<?, ?> map) { + List<String> 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 + "]<br>"); + } + 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 6da4cce616..9f39b840e4 100644 --- a/apps/routerconsole/jsp/debug.jsp +++ b/apps/routerconsole/jsp/debug.jsp @@ -13,7 +13,7 @@ <%@include file="summaryajax.jsi" %> </head><body onload="initAjax()"> <%@include file="summary.jsi" %> -<h1>Router SKM</h1> +<h1>Router Debug</h1> <div class="main" id="main"> <% /* @@ -22,9 +22,14 @@ net.i2p.router.RouterContext ctx = (net.i2p.router.RouterContext) net.i2p.I2PAppContext.getGlobalContext(); /* - * Print out the status for all the SessionKeyManagers + * Print out the status for the UpdateManager */ + ctx.updateManager().renderStatusHTML(out); + /* + * Print out the status for all the SessionKeyManagers + */ + out.print("<h2>Router SKM</h2>"); ctx.sessionKeyManager().renderStatusHTML(out); java.util.Set<net.i2p.data.Destination> 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 eae698de4d..5f609f5475 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 8c72252fcb..ad7c20a092 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<String> { } 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; } -- GitLab