diff --git a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/ProjectConfigBuilder.java b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/ProjectConfigBuilder.java index fef43fb9a..cc7e1530e 100644 --- a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/ProjectConfigBuilder.java +++ b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/ProjectConfigBuilder.java @@ -147,10 +147,10 @@ private static String calculateProjectConfigHash(WurstProjectConfigData projectC .append(",").append(force.getFlags().getSharedControl()) .append(",").append(force.getFlags().getSharedControlAdvanced()) .append("players:"); - for (int id : force.getPlayerIds()) { - sb.append(id).append(","); - } - sb.append("\n"); + for (int id : force.getPlayerIds()) { + sb.append(id).append(","); + } + sb.append("\n"); } // Option flags @@ -175,20 +175,22 @@ private static void applyBuildMapData(WurstProjectConfigData projectConfig, File prepareW3I(projectConfig, w3I); result.script = new File(buildDir, "war3mapj_with_config.j.txt"); - FileInputStream inputStream = new FileInputStream(mapScript); - StringWriter sw = new StringWriter(); - - if (w3data.getWc3PatchVersion().isPresent()) { - w3I.injectConfigsInJassScript(inputStream, sw, w3data.getWc3PatchVersion().get()); - } else { - GameVersion version = GameVersion.VERSION_1_32; - WLogger.info( - "Failed to determine installed game version. Falling back to " + version - ); - w3I.injectConfigsInJassScript(inputStream, sw, version); + try (FileInputStream inputStream = new FileInputStream(mapScript)) { + StringWriter sw = new StringWriter(); + + if (w3data.getWc3PatchVersion().isPresent()) { + w3I.injectConfigsInJassScript(inputStream, sw, w3data.getWc3PatchVersion().get()); + } else { + GameVersion version = GameVersion.VERSION_1_32; + WLogger.info( + "Failed to determine installed game version. Falling back to " + version + ); + w3I.injectConfigsInJassScript(inputStream, sw, version); + } + + byte[] scriptBytes = sw.toString().getBytes(StandardCharsets.UTF_8); + Files.write(scriptBytes, result.script); } - byte[] scriptBytes = sw.toString().getBytes(StandardCharsets.UTF_8); - Files.write(scriptBytes, result.script); } diff --git a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/WLogger.java b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/WLogger.java index 1fae19d93..564889eca 100644 --- a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/WLogger.java +++ b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/WLogger.java @@ -86,22 +86,24 @@ public static String getLog() { } private static String getLast100Lines(File file) throws IOException { - FileInputStream fileInputStream = new FileInputStream(file); - FileChannel channel = fileInputStream.getChannel(); - ByteBuffer buffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size()); - buffer.position((int) channel.size()); - int count = 0; - StringBuilder builder = new StringBuilder(); - for (long i = channel.size() - 1; i >= 0; i--) { - char c = (char) buffer.get((int) i); - builder.append(c); - if (c == '\n') { - if (count == 100) break; - count++; + FileChannel channel; + try (FileInputStream fileInputStream = new FileInputStream(file)) { + channel = fileInputStream.getChannel(); + ByteBuffer buffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size()); + buffer.position((int) channel.size()); + int count = 0; + StringBuilder builder = new StringBuilder(); + for (long i = channel.size() - 1; i >= 0; i--) { + char c = (char) buffer.get((int) i); + builder.append(c); + if (c == '\n') { + if (count == 100) break; + count++; + } } + return builder.toString(); } - channel.close(); - return builder.toString(); + }