From be6de7d73d31114fdb756fccc38d96bba9a6a1e3 Mon Sep 17 00:00:00 2001 From: Snjezana Peco Date: Thu, 14 Nov 2019 04:33:23 +0100 Subject: [PATCH] BasicFileDetectorTest.testInclusions* fail randomly Signed-off-by: Snjezana Peco --- .../ls/core/internal/preferences/Preferences.java | 13 +++++++++---- .../internal/contentassist/SnippetUtilsTest.java | 8 ++++++++ .../core/internal/correction/ReorgQuickFixTest.java | 4 ---- .../managers/AbstractProjectsManagerBasedTest.java | 4 ++++ .../internal/managers/BasicFileDetectorTest.java | 6 +++--- 5 files changed, 24 insertions(+), 11 deletions(-) diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/preferences/Preferences.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/preferences/Preferences.java index 7edce3e19e..c6b7e6d4a3 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/preferences/Preferences.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/preferences/Preferences.java @@ -18,6 +18,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.UUID; @@ -345,7 +346,7 @@ public class Preferences { private List javaCompletionFavoriteMembers; - private List javaImportExclusions = new ArrayList<>(); + private List javaImportExclusions = new LinkedList<>(); private String javaHome; private List importOrder; private List filteredTypes; @@ -357,7 +358,7 @@ public class Preferences { private int parallelBuildsCount; static { - JAVA_IMPORT_EXCLUSIONS_DEFAULT = new ArrayList<>(); + JAVA_IMPORT_EXCLUSIONS_DEFAULT = new LinkedList<>(); JAVA_IMPORT_EXCLUSIONS_DEFAULT.add("**/node_modules/**"); JAVA_IMPORT_EXCLUSIONS_DEFAULT.add("**/.metadata/**"); JAVA_IMPORT_EXCLUSIONS_DEFAULT.add("**/archetype-resources/**"); @@ -561,8 +562,12 @@ public static Preferences createFrom(Map configuration) { prefs.setGenerateToStringLimitElements(generateToStringLimitElements); List javaImportExclusions = getList(configuration, JAVA_IMPORT_EXCLUSIONS_KEY, JAVA_IMPORT_EXCLUSIONS_DEFAULT); - prefs.setJavaImportExclusions(javaImportExclusions); - + if (javaImportExclusions instanceof LinkedList) { + prefs.setJavaImportExclusions(javaImportExclusions); + } else { + List copy = new LinkedList<>(javaImportExclusions); + prefs.setJavaImportExclusions(copy); + } List javaCompletionFavoriteMembers = getList(configuration, JAVA_COMPLETION_FAVORITE_MEMBERS_KEY, JAVA_COMPLETION_FAVORITE_MEMBERS_DEFAULT); prefs.setJavaCompletionFavoriteMembers(javaCompletionFavoriteMembers); diff --git a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/contentassist/SnippetUtilsTest.java b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/contentassist/SnippetUtilsTest.java index d8575dc3a9..470da5f7cf 100644 --- a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/contentassist/SnippetUtilsTest.java +++ b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/contentassist/SnippetUtilsTest.java @@ -22,6 +22,7 @@ import org.eclipse.jdt.ls.core.internal.preferences.PreferenceManager; import org.eclipse.lsp4j.MarkupContent; import org.eclipse.lsp4j.jsonrpc.messages.Either; +import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -29,13 +30,20 @@ public class SnippetUtilsTest { // @Mock protected PreferenceManager preferenceManager; + private PreferenceManager oldPreferenceManager; @Before public void initProjectManager() throws Exception { preferenceManager = mock(PreferenceManager.class); + oldPreferenceManager = JavaLanguageServerPlugin.getPreferencesManager(); JavaLanguageServerPlugin.setPreferencesManager(preferenceManager); } + @After + public void cleanup() throws Exception { + JavaLanguageServerPlugin.setPreferencesManager(oldPreferenceManager); + } + @Test public void testWhenMarkDownSupported() { ClientPreferences mockCapabilies = mock(ClientPreferences.class); diff --git a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/correction/ReorgQuickFixTest.java b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/correction/ReorgQuickFixTest.java index c8ba067a23..662ffa35bc 100644 --- a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/correction/ReorgQuickFixTest.java +++ b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/correction/ReorgQuickFixTest.java @@ -26,7 +26,6 @@ import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IPackageFragment; import org.eclipse.jdt.core.IPackageFragmentRoot; -import org.eclipse.jdt.ls.core.internal.JavaLanguageServerPlugin; import org.eclipse.jdt.ls.core.internal.ResourceUtils; import org.eclipse.jdt.ls.core.internal.handlers.CodeActionHandler; import org.eclipse.lsp4j.CodeAction; @@ -51,10 +50,7 @@ public class ReorgQuickFixTest extends AbstractQuickFixTest { public void setup() throws Exception { fJProject1 = newEmptyProject(); fJProject1.setOptions(TestOptions.getDefaultOptions()); - - JavaLanguageServerPlugin.setPreferencesManager(preferenceManager); when(preferenceManager.getClientPreferences().isResourceOperationSupported()).thenReturn(true); - fSourceFolder = fJProject1.getPackageFragmentRoot(fJProject1.getProject().getFolder("src")); } diff --git a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/AbstractProjectsManagerBasedTest.java b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/AbstractProjectsManagerBasedTest.java index 143e34186e..6155d2b629 100644 --- a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/AbstractProjectsManagerBasedTest.java +++ b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/AbstractProjectsManagerBasedTest.java @@ -92,6 +92,8 @@ public abstract class AbstractProjectsManagerBasedTest { @Mock protected PreferenceManager preferenceManager; + private PreferenceManager oldPreferenceManager; + protected Preferences preferences; protected SimpleLogListener logListener; @@ -130,6 +132,7 @@ public void initProjectManager() throws Exception { } initPreferenceManager(true); + oldPreferenceManager = JavaLanguageServerPlugin.getPreferencesManager(); JavaLanguageServerPlugin.setPreferencesManager(preferenceManager); projectsManager = new ProjectsManager(preferenceManager); ProgressReporterManager progressManager = new ProgressReporterManager(this.client, preferenceManager); @@ -242,6 +245,7 @@ protected File getWorkingProjectDirectory() throws IOException { @After public void cleanUp() throws Exception { + JavaLanguageServerPlugin.setPreferencesManager(oldPreferenceManager); projectsManager = null; Platform.removeLogListener(logListener); logListener = null; diff --git a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/BasicFileDetectorTest.java b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/BasicFileDetectorTest.java index 4fb7c101c8..c87abf9657 100644 --- a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/BasicFileDetectorTest.java +++ b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/BasicFileDetectorTest.java @@ -87,7 +87,7 @@ public void testInclusions() throws Exception { JavaLanguageServerPlugin.getPreferencesManager().getPreferences().setJavaImportExclusions(javaImportInclusions); BasicFileDetector detector = new BasicFileDetector(Paths.get("projects/buildfiles/parent"), "buildfile").includeNested(false).maxDepth(3); Collection dirs = detector.scan(null); - assertEquals("Found " + dirs, 2, dirs.size()); + assertEquals("Found " + dirs + " ,exclusions=" + JavaLanguageServerPlugin.getPreferencesManager().getPreferences().getJavaImportExclusions(), 2, dirs.size()); List missingDirs = separatorsToSystem(list("projects/buildfiles/parent/1_0/0_2_0", "projects/buildfiles/parent/1_0/0_2_1")); dirs.stream().map(Path::toString).forEach(missingDirs::remove); assertEquals("Directories were not detected" + missingDirs, 0, missingDirs.size()); @@ -113,7 +113,7 @@ public void testInclusions2() throws Exception { JavaLanguageServerPlugin.getPreferencesManager().getPreferences().setJavaImportExclusions(javaImportInclusions); BasicFileDetector detector = new BasicFileDetector(Paths.get("projects/buildfiles/parent"), "buildfile").includeNested(false).maxDepth(3); Collection dirs = detector.scan(null); - assertEquals("Found " + dirs, 1, dirs.size()); + assertEquals("Found " + " ,exclusions=" + JavaLanguageServerPlugin.getPreferencesManager().getPreferences().getJavaImportExclusions() + dirs, 1, dirs.size()); List missingDirs = separatorsToSystem(list("projects/buildfiles/parent/1_0/0_2_0")); dirs.stream().map(Path::toString).forEach(missingDirs::remove); assertEquals("Directories were not detected" + missingDirs, 0, missingDirs.size()); @@ -135,7 +135,7 @@ public void testInclusions3() throws Exception { JavaLanguageServerPlugin.getPreferencesManager().getPreferences().setJavaImportExclusions(javaImportInclusions); BasicFileDetector detector = new BasicFileDetector(Paths.get("projects/buildfiles/parent"), "buildfile").includeNested(false).maxDepth(3); Collection dirs = detector.scan(null); - assertEquals("Found " + dirs, 0, dirs.size()); + assertEquals("Found " + " ,exclusions=" + JavaLanguageServerPlugin.getPreferencesManager().getPreferences().getJavaImportExclusions() + dirs, 0, dirs.size()); } finally { JavaLanguageServerPlugin.getPreferencesManager().getPreferences().setJavaImportExclusions(javaImportExclusions); }