From a8b2cf90e9356dcbf2d998c27bdf3af8303595ff Mon Sep 17 00:00:00 2001 From: Tad Hunt Date: Sat, 21 Oct 2023 17:24:53 -0600 Subject: [PATCH] Fix scanner resource leak. Wraps the Scanner in try-with-resources to ensure resource cleanup after reading the config-file from the plugin jar. --- .../garbagemule/MobArena/util/config/ConfigUtils.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/garbagemule/MobArena/util/config/ConfigUtils.java b/src/main/java/com/garbagemule/MobArena/util/config/ConfigUtils.java index a8acff0..124e3de 100644 --- a/src/main/java/com/garbagemule/MobArena/util/config/ConfigUtils.java +++ b/src/main/java/com/garbagemule/MobArena/util/config/ConfigUtils.java @@ -16,6 +16,7 @@ import java.text.DecimalFormatSymbols; import java.util.HashMap; import java.util.Locale; import java.util.Map; +import java.util.NoSuchElementException; import java.util.Scanner; import java.util.Set; @@ -46,11 +47,15 @@ public class ConfigUtils if (is == null) { throw new IllegalStateException("Couldn't read " + res + " from jar, please re-install MobArena"); } - Scanner scanner = new Scanner(is).useDelimiter("\\A"); - if (!scanner.hasNext()) { + + String contents; + try (Scanner scanner = new Scanner(is)) { + scanner.useDelimiter("\\A"); + contents = scanner.next(); + } catch (NoSuchElementException e) { throw new IllegalStateException("No content in " + res + " in jar, please re-install MobArena"); } - String contents = scanner.next(); + YamlConfiguration yaml = new YamlConfiguration(); try { yaml.loadFromString(contents);