From 384b2954fbdbd471ce783a4a10b7cd5d3eebf812 Mon Sep 17 00:00:00 2001 From: BoykoAlex Date: Tue, 21 Nov 2017 16:54:21 -0500 Subject: [PATCH] Fix regression - load project in sync if not cached --- .../commons/gradle/GradleProjectCache.java | 5 +-- .../commons/maven/java/MavenProjectCache.java | 5 +-- .../commons/maven/MavenProjectCacheTest.java | 36 +++++++++++-------- 3 files changed, 28 insertions(+), 18 deletions(-) diff --git a/headless-services/commons/commons-gradle/src/main/java/org/springframework/ide/vscode/commons/gradle/GradleProjectCache.java b/headless-services/commons/commons-gradle/src/main/java/org/springframework/ide/vscode/commons/gradle/GradleProjectCache.java index 110d1409b..532463033 100644 --- a/headless-services/commons/commons-gradle/src/main/java/org/springframework/ide/vscode/commons/gradle/GradleProjectCache.java +++ b/headless-services/commons/commons-gradle/src/main/java/org/springframework/ide/vscode/commons/gradle/GradleProjectCache.java @@ -40,7 +40,7 @@ public class GradleProjectCache extends AbstractFileToProjectCache { while (!progressDone.get()) { @@ -189,7 +195,7 @@ public class MavenProjectCacheTest { }).get(10, TimeUnit.SECONDS); assertTrue(classpathCacheFile.exists()); - assertEquals(48, project.getClasspath().getClasspathEntries().size()); + assertEquals(49, project.getClasspath().getClasspathEntries().size()); progressDone.set(false); @@ -198,7 +204,18 @@ public class MavenProjectCacheTest { // Check loaded from cache file project = cache.project(pomFile); - assertEquals(48, project.getClasspath().getClasspathEntries().size()); + assertEquals(49, project.getClasspath().getClasspathEntries().size()); + + // check async project update (no changes no project changed event) + CompletableFuture.runAsync(() -> { + while (!progressDone.get()) { + try { + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }).get(10, TimeUnit.SECONDS); } @Test @@ -226,20 +243,11 @@ public class MavenProjectCacheTest { MavenProjectCache cache = new MavenProjectCache(server, MavenCore.getDefault(), true, cacheFolder); MavenJavaProject project = cache.project(pomFile); - assertTrue(project.getClasspath().getClasspathEntries().isEmpty()); + assertEquals(48, project.getClasspath().getClasspathEntries().size()); - CompletableFuture.runAsync(() -> { - while (!progressDone.get()) { - try { - Thread.sleep(500); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - }).get(10, TimeUnit.SECONDS); - progressDone.set(false); verify(diagnosticService, never()).diagnosticEvent(any(ShowMessageException.class)); + progressDone.set(false); writeContent(pomFile, ""); fileObserver.notifyFileChanged(pomFile.toURI().toString()); CompletableFuture.runAsync(() -> {