From 83e29d629f18008929f8e57748e279ce5bebebee Mon Sep 17 00:00:00 2001 From: aboyko Date: Wed, 8 Mar 2023 13:58:45 -0500 Subject: [PATCH] Minimize # of threads for fetching boot versions from maven central --- .../ide/vscode/commons/rewrite/java/ORAstUtils.java | 8 ++++---- .../CachedBootVersionsFromMavenCentral.java | 11 +++++++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/java/ORAstUtils.java b/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/java/ORAstUtils.java index c846e68d3..8bc0962fd 100644 --- a/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/java/ORAstUtils.java +++ b/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/java/ORAstUtils.java @@ -311,13 +311,13 @@ public class ORAstUtils { ctx = parseContext; } List cus = Collections.emptyList(); - long start = System.currentTimeMillis(); +// long start = System.currentTimeMillis(); synchronized (parser) { cus = parser.parseInputs(inputs, null, ctx); } - log.info("Rewrite parser: " + (System.currentTimeMillis() - start)); +// log.info("Rewrite parser: " + (System.currentTimeMillis() - start)); List finalCus = new ArrayList<>(cus.size()); - start = System.currentTimeMillis(); +// start = System.currentTimeMillis(); for (CompilationUnit cu : cus) { J.CompilationUnit newCu = (J.CompilationUnit) new UpdateSourcePositions().getVisitor().visit(cu, ctx); if (newCu == null) { @@ -326,7 +326,7 @@ public class ORAstUtils { finalCus.add(newCu); } } - log.info("Positions Update: " + (System.currentTimeMillis() - start)); +// log.info("Positions Update: " + (System.currentTimeMillis() - start)); return finalCus; } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/CachedBootVersionsFromMavenCentral.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/CachedBootVersionsFromMavenCentral.java index 9f13e4a08..56b623cea 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/CachedBootVersionsFromMavenCentral.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/CachedBootVersionsFromMavenCentral.java @@ -12,6 +12,7 @@ package org.springframework.ide.vscode.boot.validation.generations; import java.io.IOException; import java.time.Duration; +import java.util.Collections; import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionException; @@ -44,13 +45,19 @@ public class CachedBootVersionsFromMavenCentral { @Override public List load(String key) throws Exception { for (int i = 0; i < ATTEMPTS_NUMBER; i++) { + CompletableFuture> future = null; try { - return getFuture().get(RESPONSE_WAIT_TIME_MS, TimeUnit.MILLISECONDS); + future = getFuture(); + return future.get(RESPONSE_WAIT_TIME_MS, TimeUnit.MILLISECONDS); } catch (ExecutionException | TimeoutException e) { // ignore exception - ask maven central again + if (future != null) { + future.cancel(true); + } } } - throw new Exception("Failed to fetch versions from Maven Central after " + ATTEMPTS_NUMBER + " tries."); + log.error("Failed to fetch versions from Maven Central after " + ATTEMPTS_NUMBER + " tries."); + return Collections.emptyList(); } });