diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelControllerGroup.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelControllerGroup.java
index e82ffba60..6f2b9885e 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelControllerGroup.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelControllerGroup.java
@@ -30,27 +30,21 @@ public class TunnelControllerGroup {
private List _controllers;
private String _configFile = DEFAULT_CONFIG_FILE;
- public static TunnelControllerGroup getInstance() {
- synchronized (TunnelControllerGroup.class) {
- if (_instance == null)
- _instance = new TunnelControllerGroup(DEFAULT_CONFIG_FILE);
- return _instance;
- }
- }
+ public static TunnelControllerGroup getInstance() { return _instance; }
- private TunnelControllerGroup(String configFile) {
+ private TunnelControllerGroup(String configFile) {
_log = I2PAppContext.getGlobalContext().logManager().getLog(TunnelControllerGroup.class);
_controllers = new ArrayList();
_configFile = configFile;
loadControllers(_configFile);
}
-
+
public static void main(String args[]) {
if ( (args == null) || (args.length <= 0) ) {
- _instance = getInstance();
+ _instance = new TunnelControllerGroup(DEFAULT_CONFIG_FILE);
} else if (args.length == 1) {
if (DEFAULT_CONFIG_FILE.equals(args[0]))
- _instance = getInstance();
+ _instance = new TunnelControllerGroup(DEFAULT_CONFIG_FILE);
else
_instance = new TunnelControllerGroup(args[0]);
} else {
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/WebStatusPageHelper.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/WebStatusPageHelper.java
index 530e33c0c..c186a1857 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/WebStatusPageHelper.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/WebStatusPageHelper.java
@@ -47,9 +47,13 @@ public class WebStatusPageHelper {
}
public String getSummaryList() {
+ TunnelControllerGroup group = TunnelControllerGroup.getInstance();
+ if (group == null)
+ return "I2PTunnel instances not yet started - please be patient\n";
+
StringBuffer buf = new StringBuffer(4*1024);
buf.append("
");
- List tunnels = TunnelControllerGroup.getInstance().getControllers();
+ List tunnels = group.getControllers();
for (int i = 0; i < tunnels.size(); i++) {
buf.append("- \n");
getSummary(buf, i, (TunnelController)tunnels.get(i));
@@ -92,24 +96,45 @@ public class WebStatusPageHelper {
return "Action " + _action + " unknown";
}
private String stopAll() {
- List msgs = TunnelControllerGroup.getInstance().stopAllControllers();
+ TunnelControllerGroup group = TunnelControllerGroup.getInstance();
+ if (group == null)
+ return "I2PTunnel instances not yet started - please be patient\n";
+
+ List msgs = group.stopAllControllers();
return getMessages(msgs);
}
private String startAll() {
- List msgs = TunnelControllerGroup.getInstance().startAllControllers();
+ TunnelControllerGroup group = TunnelControllerGroup.getInstance();
+ if (group == null)
+ return "I2PTunnel instances not yet started - please be patient\n";
+
+ List msgs = group.startAllControllers();
return getMessages(msgs);
}
private String restartAll() {
- List msgs = TunnelControllerGroup.getInstance().restartAllControllers();
+ TunnelControllerGroup group = TunnelControllerGroup.getInstance();
+ if (group == null)
+ return "I2PTunnel instances not yet started - please be patient\n";
+
+ List msgs = group.restartAllControllers();
return getMessages(msgs);
}
private String reloadConfig() {
- TunnelControllerGroup.getInstance().reloadControllers();
+ TunnelControllerGroup group = TunnelControllerGroup.getInstance();
+ if (group == null)
+ return "I2PTunnel instances not yet started - please be patient\n";
+
+ group.reloadControllers();
return "Config reloaded";
}
private String start() {
+ TunnelControllerGroup group = TunnelControllerGroup.getInstance();
+ if (group == null)
+ return "I2PTunnel instances not yet started - please be patient\n";
+
if (_controllerNum < 0) return "Invalid tunnel";
- List controllers = TunnelControllerGroup.getInstance().getControllers();
+
+ List controllers = group.getControllers();
if (_controllerNum >= controllers.size()) return "Invalid tunnel";
TunnelController controller = (TunnelController)controllers.get(_controllerNum);
controller.startTunnel();
@@ -117,8 +142,13 @@ public class WebStatusPageHelper {
}
private String stop() {
+ TunnelControllerGroup group = TunnelControllerGroup.getInstance();
+ if (group == null)
+ return "I2PTunnel instances not yet started - please be patient\n";
+
if (_controllerNum < 0) return "Invalid tunnel";
- List controllers = TunnelControllerGroup.getInstance().getControllers();
+
+ List controllers = group.getControllers();
if (_controllerNum >= controllers.size()) return "Invalid tunnel";
TunnelController controller = (TunnelController)controllers.get(_controllerNum);
controller.stopTunnel();
@@ -126,7 +156,11 @@ public class WebStatusPageHelper {
}
private String getMessages() {
- return getMessages(TunnelControllerGroup.getInstance().clearAllMessages());
+ TunnelControllerGroup group = TunnelControllerGroup.getInstance();
+ if (group == null)
+ return "";
+
+ return getMessages(group.clearAllMessages());
}
private String getMessages(List msgs) {