From 25dea0b5b05a93aaf8348cb8295ae699aebb4359 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Sun, 10 Jun 2018 23:48:49 +1200 Subject: [PATCH] #1412 - Fix Resource leaks for properties & yaml files etc - DefaultAutoTuneService --- .../autotune/service/DefaultAutoTuneService.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java b/src/main/java/io/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java index a9c49bcb3..da7c98322 100644 --- a/src/main/java/io/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java +++ b/src/main/java/io/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java @@ -12,6 +12,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; +import java.io.IOException; import java.io.InputStream; import java.util.concurrent.TimeUnit; @@ -106,11 +107,14 @@ public class DefaultAutoTuneService implements AutoTuneService { loadAutoTuneProfiling(AutoTuneXmlReader.read(file)); } else { // look for autotune as a resource - InputStream stream = getClass().getResourceAsStream("/" + tuningFile); - if (stream != null) { - loadAutoTuneProfiling(AutoTuneXmlReader.read(stream)); - } else { - logger.warn("AutoTune file {} not found - no initial automatic query tuning", tuningFile); + try (InputStream stream = getClass().getResourceAsStream("/" + tuningFile)) { + if (stream != null) { + loadAutoTuneProfiling(AutoTuneXmlReader.read(stream)); + } else { + logger.warn("AutoTune file {} not found - no initial automatic query tuning", tuningFile); + } + } catch (IOException e) { + throw new IllegalStateException("Error on auto close of " + tuningFile, e); } } }