From 379f3c102a6f8a57fcbdec0a5f208fe53379beec Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Wed, 7 Aug 2019 16:47:48 +0200 Subject: [PATCH] try with resource when reading symbol cache data to avoid leaking file handles --- .../boot/java/utils/SymbolCacheOnDisc.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SymbolCacheOnDisc.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SymbolCacheOnDisc.java index 827afae1e..69a90830c 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SymbolCacheOnDisc.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SymbolCacheOnDisc.java @@ -99,11 +99,12 @@ public class SymbolCacheOnDisc implements SymbolCache { @Override public Pair> retrieve(SymbolCacheKey cacheKey, String[] files) { - try { - File cacheStore = new File(cacheDirectory, cacheKey.toString() + ".json"); - if (cacheStore.exists()) { - Gson gson = createGson(); - JsonReader reader = new JsonReader(new FileReader(cacheStore)); + File cacheStore = new File(cacheDirectory, cacheKey.toString() + ".json"); + if (cacheStore.exists()) { + + Gson gson = createGson(); + + try (JsonReader reader = new JsonReader(new FileReader(cacheStore))) { CacheStore store = gson.fromJson(reader, CacheStore.class); SortedMap timestampedFiles = Arrays.stream(files) @@ -133,9 +134,9 @@ public class SymbolCacheOnDisc implements SymbolCache { ); } } - } - catch (Exception e) { - log.error("error reading cached symbols", e); + catch (Exception e) { + log.error("error reading cached symbols", e); + } } return null; }