From c7f132f1bc1e9acda0b22a0d508f277f37d3452c Mon Sep 17 00:00:00 2001 From: Chao Wang Date: Tue, 16 Sep 2025 12:53:42 +0800 Subject: [PATCH] fix: return a new list to allow ExcludeManifestIntentionAction adds elements afterwards --- .../componentanalysis/ManifestExclusionManager.java | 7 ++++--- .../ManifestExclusionManagerSimpleTest.java | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jboss/tools/intellij/componentanalysis/ManifestExclusionManager.java b/src/main/java/org/jboss/tools/intellij/componentanalysis/ManifestExclusionManager.java index c4a0dcf..8120d07 100644 --- a/src/main/java/org/jboss/tools/intellij/componentanalysis/ManifestExclusionManager.java +++ b/src/main/java/org/jboss/tools/intellij/componentanalysis/ManifestExclusionManager.java @@ -23,6 +23,7 @@ import java.nio.file.Path; import java.nio.file.PathMatcher; import java.nio.file.Paths; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -80,7 +81,7 @@ public static void addExclusionPattern(String manifestPath, Project project) { ApiSettingsState settings = ApiSettingsState.getInstance(); List currentPatterns = parsePatterns(settings.manifestExclusionPatterns); - + if (!currentPatterns.contains(relativePath)) { currentPatterns.add(relativePath); settings.manifestExclusionPatterns = String.join("\n", currentPatterns); @@ -107,13 +108,13 @@ private static String getRelativePath(VirtualFile file, VirtualFile projectRoot) private static List parsePatterns(String patterns) { if (patterns == null || patterns.trim().isEmpty()) { - return Collections.emptyList(); + return new ArrayList<>(); } return Arrays.stream(patterns.split("[\n\r]+")) .map(String::trim) .filter(pattern -> !pattern.isEmpty() && !pattern.startsWith("#")) - .collect(Collectors.toList()); + .collect(Collectors.toCollection(ArrayList::new)); } private static boolean matchesAnyPattern(String path, List patterns) { diff --git a/src/test/java/org/jboss/tools/intellij/componentanalysis/ManifestExclusionManagerSimpleTest.java b/src/test/java/org/jboss/tools/intellij/componentanalysis/ManifestExclusionManagerSimpleTest.java index 0eabc0f..b052358 100644 --- a/src/test/java/org/jboss/tools/intellij/componentanalysis/ManifestExclusionManagerSimpleTest.java +++ b/src/test/java/org/jboss/tools/intellij/componentanalysis/ManifestExclusionManagerSimpleTest.java @@ -18,7 +18,8 @@ import java.nio.file.PathMatcher; import java.nio.file.Paths; -import static org.junit.Assert.*; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; /** * Simple tests for glob pattern matching behavior that don't require IntelliJ platform mocking.