diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/LaunchServerStarter.java b/LaunchServer/src/main/java/pro/gravit/launchserver/LaunchServerStarter.java index cab9413e..59890706 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/LaunchServerStarter.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/LaunchServerStarter.java @@ -28,10 +28,7 @@ import pro.gravit.utils.helper.JVMHelper; import pro.gravit.utils.helper.LogHelper; -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.IOException; -import java.io.Writer; +import java.io.*; import java.nio.file.Files; import java.nio.file.Path; import java.security.Security; @@ -148,23 +145,33 @@ public LaunchServerRuntimeConfig readRuntimeConfig() throws IOException { @Override public void writeConfig(LaunchServerConfig config) throws IOException { - try (Writer writer = IOHelper.newWriter(configFile)) { + ByteArrayOutputStream output = new ByteArrayOutputStream(); + try (Writer writer = IOHelper.newWriter(output)) { + if (Launcher.gsonManager.configGson != null) { + Launcher.gsonManager.configGson.toJson(config, writer); + } else { + logger.error("Error writing LaunchServer config file. Gson is null"); + } + } + byte[] bytes = output.toByteArray(); + if(bytes.length > 0) { + IOHelper.write(configFile, bytes); + } + } + + @Override + public void writeRuntimeConfig(LaunchServerRuntimeConfig config) throws IOException { + ByteArrayOutputStream output = new ByteArrayOutputStream(); + try (Writer writer = IOHelper.newWriter(output)) { if (Launcher.gsonManager.configGson != null) { Launcher.gsonManager.configGson.toJson(config, writer); } else { logger.error("Error writing LaunchServer runtime config file. Gson is null"); } } - } - - @Override - public void writeRuntimeConfig(LaunchServerRuntimeConfig config) throws IOException { - try (Writer writer = IOHelper.newWriter(runtimeConfigFile)) { - if (Launcher.gsonManager.configGson != null) { - Launcher.gsonManager.configGson.toJson(config, writer); - } else { - logger.error("Error writing LaunchServer runtime config file. Gson is null"); - } + byte[] bytes = output.toByteArray(); + if(bytes.length > 0) { + IOHelper.write(runtimeConfigFile, bytes); } } }; diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/auth/PostgreSQLSourceConfig.java b/LaunchServer/src/main/java/pro/gravit/launchserver/auth/PostgreSQLSourceConfig.java index bb4c6e4a..16731436 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/auth/PostgreSQLSourceConfig.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/auth/PostgreSQLSourceConfig.java @@ -28,8 +28,8 @@ public final class PostgreSQLSourceConfig implements AutoCloseable, SQLSourceCon private String database; // Cache - private DataSource source; - private boolean hikari; + private transient DataSource source; + private transient boolean hikari; @Override public synchronized void close() { diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/auth/core/AbstractSQLCoreProvider.java b/LaunchServer/src/main/java/pro/gravit/launchserver/auth/core/AbstractSQLCoreProvider.java index 66b5f4b4..914b67e0 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/auth/core/AbstractSQLCoreProvider.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/auth/core/AbstractSQLCoreProvider.java @@ -238,7 +238,7 @@ public void close() throws IOException { getSQLConfig().close(); } - private SQLUser constructUser(ResultSet set) throws SQLException { + protected SQLUser constructUser(ResultSet set) throws SQLException { return set.next() ? new SQLUser(UUID.fromString(set.getString(uuidColumn)), set.getString(usernameColumn), set.getString(accessTokenColumn), set.getString(serverIDColumn), set.getString(passwordColumn), requestPermissions(set.getString(uuidColumn))) : null; } diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/auth/core/MySQLCoreProvider.java b/LaunchServer/src/main/java/pro/gravit/launchserver/auth/core/MySQLCoreProvider.java index 427efcbb..dc9c6467 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/auth/core/MySQLCoreProvider.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/auth/core/MySQLCoreProvider.java @@ -63,7 +63,8 @@ public void init(LaunchServer server) { sqlUpdateUsers = String.format("UPDATE %s SET `%s` = ? WHERE `%s` = ?", table, hardwareIdColumn, uuidColumn); } - private MySQLUser constructUser(ResultSet set) throws SQLException { + @Override + protected MySQLUser constructUser(ResultSet set) throws SQLException { return set.next() ? new MySQLUser(UUID.fromString(set.getString(uuidColumn)), set.getString(usernameColumn), set.getString(accessTokenColumn), set.getString(serverIDColumn), set.getString(passwordColumn), requestPermissions(set.getString(uuidColumn)), set.getLong(hardwareIdColumn)) : null; } diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/launchermodules/LauncherModuleLoader.java b/LaunchServer/src/main/java/pro/gravit/launchserver/launchermodules/LauncherModuleLoader.java index b57bbd04..7b20a2d9 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/launchermodules/LauncherModuleLoader.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/launchermodules/LauncherModuleLoader.java @@ -150,6 +150,9 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IO } else { try (Reader reader = IOHelper.newReader(configPath)) { targetConfig = Launcher.gsonManager.configGson.fromJson(reader, clazz); + } catch (Exception e) { + logger.error("Error when reading config {} in module {}: {}", configPath, file, e); + return super.visitFile(file, attrs); } } if (entity.propertyMap == null) entity.propertyMap = new HashMap<>(); diff --git a/LauncherCore/src/main/java/pro/gravit/utils/Version.java b/LauncherCore/src/main/java/pro/gravit/utils/Version.java index 34cf2ce5..99062749 100644 --- a/LauncherCore/src/main/java/pro/gravit/utils/Version.java +++ b/LauncherCore/src/main/java/pro/gravit/utils/Version.java @@ -6,7 +6,7 @@ public final class Version implements Comparable { public static final int MAJOR = 5; public static final int MINOR = 3; - public static final int PATCH = 2; + public static final int PATCH = 3; public static final int BUILD = 1; public static final Version.Type RELEASE = Type.STABLE; public final int major; diff --git a/build.gradle b/build.gradle index 1b8f9b54..5156e367 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ id 'org.openjfx.javafxplugin' version '0.0.10' apply false } group = 'pro.gravit.launcher' -version = '5.3.2' +version = '5.3.3' apply from: 'props.gradle'