From 97fca96861dfce5b4e5b187b411704dd5b63f9a5 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Mon, 9 May 2016 14:26:07 +0000
Subject: [PATCH] DTG: Can't do first-time startup from /configservice, restart
 required

---
 .../net/i2p/router/web/ConfigServiceHandler.java   | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

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 8bd19b1fe4..9b2bcf9ca9 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigServiceHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigServiceHandler.java
@@ -332,15 +332,25 @@ public class ConfigServiceHandler extends FormHandler {
                 ClientApp dtg = mgr.getRegisteredApp("desktopgui");
                 if (dtg != null) {
                     if (enable) {
-                        if (dtg.getState() == ClientAppState.STOPPED)
+                        if (dtg.getState() == ClientAppState.STOPPED) {
                             dtg.startup();
+                            addFormNotice(_t("Enabled system tray"));
+                        }
                     } else {
-                        if (dtg.getState() == ClientAppState.RUNNING)
+                        if (dtg.getState() == ClientAppState.RUNNING) {
                             dtg.shutdown(null);
+                            addFormNotice(_t("Disabled system tray"));
+                        }
                     }
                 } else if (enable) {
+                    // already set to true, GraphicsEnvironment initialized, can't change it now
+                    if (Boolean.valueOf(System.getProperty("java.awt.headless"))) {
+                        addFormError(_t("Restart required to take effect"));
+                    } else {
                         dtg = new net.i2p.desktopgui.Main(_context, mgr, null);    
                         dtg.startup();
+                        addFormNotice(_t("Enabled system tray"));
+                    }
                 }
             } catch (Throwable t) {
                 if (enable)
-- 
GitLab