From 13dc2af9350f01af0c7456fce74b777c320ebf8e Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Fri, 21 Apr 2017 21:50:55 +0200
Subject: [PATCH] fixed errors with new server settings path

---
 .../deadlocker8/budgetmaster/ui/Controller.java   | 12 ++++++++++--
 .../budgetmaster/ui/SettingsController.java       | 15 +++++++++++----
 .../deadlocker8/budgetmasterserver/main/Main.java |  4 ++--
 .../budgetmasterserver/main/Utils.java            |  2 +-
 4 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/src/de/deadlocker8/budgetmaster/ui/Controller.java b/src/de/deadlocker8/budgetmaster/ui/Controller.java
index 59ae5fa8c..a9f1c4350 100644
--- a/src/de/deadlocker8/budgetmaster/ui/Controller.java
+++ b/src/de/deadlocker8/budgetmaster/ui/Controller.java
@@ -238,8 +238,16 @@ public class Controller
 				Alert alert = new Alert(AlertType.ERROR);
 				alert.setTitle("Fehler");
 				alert.setHeaderText("");
-				alert.setContentText("Beim Herstellen der Verbindung zum Server ist ein Fehler aufgetreten. Bitte überprüfe deine Einstellungen und ob der Server läuft.\n\n"
-						+ "Fehlerdetails:\n" + errorMessage);
+				if(errorMessage == null)
+				{
+					alert.setContentText("Beim Herstellen der Verbindung zum Server ist ein Fehler aufgetreten. Bitte überprüfe deine Einstellungen und ob der Server läuft.");
+				}
+				else
+				{
+					alert.setContentText("Beim Herstellen der Verbindung zum Server ist ein Fehler aufgetreten. Bitte überprüfe deine Einstellungen und ob der Server läuft.\n\n"
+							+ "Fehlerdetails:\n" + errorMessage);
+				}
+				
 				Stage dialogStage = (Stage)alert.getDialogPane().getScene().getWindow();
 				dialogStage.getIcons().add(icon);
 				dialogStage.initOwner(stage);
diff --git a/src/de/deadlocker8/budgetmaster/ui/SettingsController.java b/src/de/deadlocker8/budgetmaster/ui/SettingsController.java
index 47cf97c44..f913b6634 100644
--- a/src/de/deadlocker8/budgetmaster/ui/SettingsController.java
+++ b/src/de/deadlocker8/budgetmaster/ui/SettingsController.java
@@ -69,12 +69,19 @@ public class SettingsController
 	private void setTextAreaTrustedHosts(ArrayList<String> trustedHosts)
 	{
 		StringBuilder trustedHostsString = new StringBuilder();
-		for(String currentHost : trustedHosts)
+		if(trustedHosts != null)
 		{
-			trustedHostsString.append(currentHost);
-			trustedHostsString.append("\n");
+			for(String currentHost : trustedHosts)
+			{
+				trustedHostsString.append(currentHost);
+				trustedHostsString.append("\n");
+			}
+			textAreaTrustedHosts.setText(trustedHostsString.toString());
+		}
+		else
+		{
+			textAreaTrustedHosts.setText("");
 		}
-		textAreaTrustedHosts.setText(trustedHostsString.toString());
 	}
 	
 	public void save()
diff --git a/src/de/deadlocker8/budgetmasterserver/main/Main.java b/src/de/deadlocker8/budgetmasterserver/main/Main.java
index a5b8df53e..379af3c21 100644
--- a/src/de/deadlocker8/budgetmasterserver/main/Main.java
+++ b/src/de/deadlocker8/budgetmasterserver/main/Main.java
@@ -33,8 +33,8 @@ public class Main
 		
 		try
 		{
-			Path settingsPath = Paths.get(Settings.class.getProtectionDomain().getCodeSource().getLocation().toURI()).resolve("settings.json");
-
+			Path settingsPath = Paths.get(Settings.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getParent().resolve("settings.json");
+			
 			if(!Files.exists(settingsPath))
 			{
 				try
diff --git a/src/de/deadlocker8/budgetmasterserver/main/Utils.java b/src/de/deadlocker8/budgetmasterserver/main/Utils.java
index 898a05cde..c7880cbdd 100644
--- a/src/de/deadlocker8/budgetmasterserver/main/Utils.java
+++ b/src/de/deadlocker8/budgetmasterserver/main/Utils.java
@@ -16,7 +16,7 @@ public class Utils
 		
 		Gson gson = new Gson();
 		
-		settingsJSON = new String(Files.readAllBytes(Paths.get(Settings.class.getProtectionDomain().getCodeSource().getLocation().toURI()).resolve("settings.json")));		
+		settingsJSON = new String(Files.readAllBytes(Paths.get(Settings.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getParent().resolve("settings.json")));		
 		settings = gson.fromJson(settingsJSON, Settings.class);	
 		return settings;		
 	}
-- 
GitLab