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 e2861908a..90d9cea85 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigAdvancedHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigAdvancedHandler.java @@ -4,6 +4,8 @@ import java.io.ByteArrayInputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; +import java.util.HashSet; +import java.util.Iterator; /** * Handler to deal with form submissions from the advanced config form and act @@ -41,6 +43,7 @@ public class ConfigAdvancedHandler extends FormHandler { * */ private void saveChanges() { + HashSet unsetKeys = new HashSet(_context.router().getConfigMap().keySet()); if (_config != null) { BufferedReader reader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(_config.getBytes()))); String line = null; @@ -52,12 +55,19 @@ public class ConfigAdvancedHandler extends FormHandler { String key = line.substring(0, eq).trim(); String val = line.substring(eq + 1).trim(); _context.router().setConfigSetting(key, val); + unsetKeys.remove(key); } } catch (IOException ioe) { addFormError("Error updating the configuration (IOERROR) - please see the error logs"); return; } - + + Iterator cleaner = unsetKeys.iterator(); + while (cleaner.hasNext()) { + String unsetKey = (String)cleaner.next(); + _context.router().removeConfigSetting(unsetKey); + } + boolean saved = _context.router().saveConfig(); if (saved) addFormNotice("Configuration saved successfully"); 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 1dede7bc8..ab069ec76 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/LogsHelper.java @@ -29,8 +29,8 @@ public class LogsHelper { StringBuffer buf = new StringBuffer(16*1024); buf.append("
\n");
- for (int i = 0; i < msgs.size(); i++) {
- String msg = (String)msgs.get(i);
+ for (int i = msgs.size(); i > 0; i--) {
+ String msg = (String)msgs.get(i - 1);
buf.append("- ");
buf.append(msg);
buf.append("
\n");
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 50ac4ca88..fb32f6989 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
@@ -71,9 +71,10 @@ public class SummaryHelper {
*
*/
public String getMemory() {
+ DecimalFormat integerFormatter = new DecimalFormat("###,###,##0");
long used = (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory())/1024;
long usedPc = 100 - ((Runtime.getRuntime().freeMemory() * 100) / Runtime.getRuntime().totalMemory());
- return used + "KB (" + usedPc + "%)";
+ return integerFormatter.format(used) + "KB (" + usedPc + "%)";
}
/**
diff --git a/apps/routerconsole/jsp/configadvanced.jsp b/apps/routerconsole/jsp/configadvanced.jsp
index f1c0504d2..5d10bdf2e 100644
--- a/apps/routerconsole/jsp/configadvanced.jsp
+++ b/apps/routerconsole/jsp/configadvanced.jsp
@@ -23,7 +23,7 @@