diff --git a/server/src/main/java/com/defold/extender/services/DefoldSdkService.java b/server/src/main/java/com/defold/extender/services/DefoldSdkService.java index fdd61566..93d7ecfa 100644 --- a/server/src/main/java/com/defold/extender/services/DefoldSdkService.java +++ b/server/src/main/java/com/defold/extender/services/DefoldSdkService.java @@ -42,6 +42,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutionException; +import java.util.stream.Stream; @Service public class DefoldSdkService { @@ -294,9 +295,8 @@ public void destroy() { return; } LOGGER.info("Cleaning up SDK cache"); - try { - Files.list(configuration.getLocation()) - .filter(path -> ! path.endsWith(TEST_SDK_DIRECTORY)) + try (Stream entries = Files.list(configuration.getLocation())) { + entries.filter(path -> ! path.endsWith(TEST_SDK_DIRECTORY)) .forEach(this::deleteCachedSdk); } catch(IOException e) { LOGGER.warn("Failed to list SDK cache directory: " + e.getMessage()); diff --git a/server/src/test/java/com/defold/extender/services/DefoldSDKServiceTest.java b/server/src/test/java/com/defold/extender/services/DefoldSDKServiceTest.java index e513adfd..b70911eb 100644 --- a/server/src/test/java/com/defold/extender/services/DefoldSDKServiceTest.java +++ b/server/src/test/java/com/defold/extender/services/DefoldSDKServiceTest.java @@ -19,6 +19,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.stream.Collectors; +import java.util.stream.Stream; import org.apache.commons.io.FileUtils; import org.json.simple.parser.ParseException; @@ -161,7 +162,10 @@ public void onlyStoreTheNewest() throws IOException, ExtenderException { defoldSdkService.getSdk(sdkHash); } - List collect = Files.list(DefoldSDKServiceTest.configuration.getLocation()).map(path -> path.toFile().getName()).collect(Collectors.toList()); + List collect = null; + try (Stream entries = Files.list(DefoldSDKServiceTest.configuration.getLocation())) { + collect = entries.map(path -> path.toFile().getName()).collect(Collectors.toList()); + } assertEquals(DefoldSDKServiceTest.configuration.getCacheSize(), collect.size()); assertTrue(collect.contains("e41438cca6cc1550d4a0131b8fc3858c2a4097f1")); diff --git a/server/src/test/java/com/defold/extender/services/cocoapods/ResolvedPodsTest.java b/server/src/test/java/com/defold/extender/services/cocoapods/ResolvedPodsTest.java index c3471b9f..ed2574b3 100644 --- a/server/src/test/java/com/defold/extender/services/cocoapods/ResolvedPodsTest.java +++ b/server/src/test/java/com/defold/extender/services/cocoapods/ResolvedPodsTest.java @@ -11,6 +11,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Stream; import javax.naming.InvalidNameException; @@ -125,7 +126,10 @@ public void testResourceBundleParsing() throws IOException, ExtenderException { File bundleDir = new File(targetDir, "UnityAdsResources.bundle"); assertTrue(bundleDir.exists()); - List resultContent = Files.list(bundleDir.toPath()).toList(); + List resultContent = null; + try (Stream entries = Files.list(bundleDir.toPath())) { + resultContent = entries.toList(); + } assertEquals(expectedFiles.size(), resultContent.size()); for (Path p : resultContent) { assertTrue(expectedFiles.contains(p.getFileName().toString()));