From 746b1745e598d9ace94c8439df29405aea9d10ec Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Sun, 26 Feb 2017 14:33:18 +0100
Subject: [PATCH] Bugfixes in Project Json Reader and Sql Writer

---
 .../scala/de/tobias/playpad/server/PlayPadServer.scala   | 1 +
 .../server/project/loader/json/DesignLoader.scala        | 2 +-
 .../playpad/server/project/loader/json/PadLoader.scala   | 9 ++++++---
 .../playpad/server/project/saver/sql/PathSaver.scala     | 4 ++--
 .../project/sync/listener/pad/PadAddListener.scala       | 2 +-
 5 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/main/scala/de/tobias/playpad/server/PlayPadServer.scala b/src/main/scala/de/tobias/playpad/server/PlayPadServer.scala
index 2536bff..a0cba39 100644
--- a/src/main/scala/de/tobias/playpad/server/PlayPadServer.scala
+++ b/src/main/scala/de/tobias/playpad/server/PlayPadServer.scala
@@ -91,6 +91,7 @@ object PlayPadServer extends App {
 
 	Runtime.getRuntime.addShutdownHook(new Thread(() => {
 		databaseConnection.close()
+		connectionSource.close()
 		stop()
 	}))
 }
diff --git a/src/main/scala/de/tobias/playpad/server/project/loader/json/DesignLoader.scala b/src/main/scala/de/tobias/playpad/server/project/loader/json/DesignLoader.scala
index 057a19d..a5127e8 100644
--- a/src/main/scala/de/tobias/playpad/server/project/loader/json/DesignLoader.scala
+++ b/src/main/scala/de/tobias/playpad/server/project/loader/json/DesignLoader.scala
@@ -3,8 +3,8 @@ package de.tobias.playpad.server.project.loader.json
 import java.util.UUID
 
 import com.google.gson.JsonObject
-import de.tobias.playpad.server.project.{Design, Pad}
 import de.tobias.playpad.server.project.utils.JsonDef
+import de.tobias.playpad.server.project.{Design, Pad}
 
 /**
   * Created by tobias on 23.02.17.
diff --git a/src/main/scala/de/tobias/playpad/server/project/loader/json/PadLoader.scala b/src/main/scala/de/tobias/playpad/server/project/loader/json/PadLoader.scala
index c3591c2..bd55a1e 100644
--- a/src/main/scala/de/tobias/playpad/server/project/loader/json/PadLoader.scala
+++ b/src/main/scala/de/tobias/playpad/server/project/loader/json/PadLoader.scala
@@ -19,9 +19,11 @@ class PadLoader {
 
 			val pad = new Pad()
 			pad.id = UUID.fromString(json.get(PAD_ID).getAsString)
-			pad.name = json.get(PAD_NAME).getAsString
+			if (json.get(PAD_NAME) != null)
+				pad.name = json.get(PAD_NAME).getAsString
 			pad.position = json.get(PAD_POSITION).getAsInt
-			pad.name = json.get(PAD_CONTENT_TYPE).getAsString
+			if (json.get(PAD_CONTENT_TYPE) != null)
+				pad.contentType = json.get(PAD_CONTENT_TYPE).getAsString
 			pad.page = page
 
 			val pathLoader = new PathLoader
@@ -30,7 +32,8 @@ class PadLoader {
 
 			val designLoader = new DesignLoader
 			val designJson = json.getAsJsonObject(PAD_DESIGN)
-			pad.design = designLoader.load(designJson, pad)
+			if (designJson != null)
+				pad.design = designLoader.load(designJson, pad)
 
 			pad
 		}).toList
diff --git a/src/main/scala/de/tobias/playpad/server/project/saver/sql/PathSaver.scala b/src/main/scala/de/tobias/playpad/server/project/saver/sql/PathSaver.scala
index 7db424a..1d695ee 100644
--- a/src/main/scala/de/tobias/playpad/server/project/saver/sql/PathSaver.scala
+++ b/src/main/scala/de/tobias/playpad/server/project/saver/sql/PathSaver.scala
@@ -11,8 +11,8 @@ import de.tobias.playpad.server.server.SqlHelper
   */
 class PathSaver(val connection: Connection) {
 	def save(path: Path): Unit = {
-		SqlHelper.insertOrUpdate(connection, PATH, path.id, PAD_NAME, path.path)
-		SqlHelper.insertOrUpdate(connection, PATH, path.id, PAD_POSITION, path.pad.id)
+		SqlHelper.insertOrUpdate(connection, PATH, path.id, PATH_PAD_REF, path.pad.id)
+		SqlHelper.insertOrUpdate(connection, PATH, path.id, PATH_NAME, path.path)
 
 	}
 }
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/pad/PadAddListener.scala b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/pad/PadAddListener.scala
index 72754c1..d902ef4 100644
--- a/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/pad/PadAddListener.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/pad/PadAddListener.scala
@@ -24,7 +24,7 @@ class PadAddListener extends Listener {
 		SqlHelper.insertOrUpdate(connection, SqlDef.PAD, padId, SqlDef.PAD_POSITION, padPosition)
 
 		if (!json.get("contentType").isJsonNull) {
-			val contentType = json.get("contentType").getAsString;
+			val contentType = json.get("contentType").getAsString
 			SqlHelper.insertOrUpdate(connection, SqlDef.PAD, padId, SqlDef.PAD_CONTENT_TYPE, contentType)
 		}
 	}
-- 
GitLab