From 5327036288d02de27414aa30cf00b003dfeba179 Mon Sep 17 00:00:00 2001 From: Maksim Zuev Date: Mon, 26 Aug 2024 12:08:51 +0200 Subject: [PATCH] [coverage] IDEA-358284 Fix NPE GitOrigin-RevId: be6331ead538572280c30116a0f36286b4fdbbbe --- .../JavaCoverageEnabledConfiguration.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/plugins/coverage/src/com/intellij/execution/configurations/coverage/JavaCoverageEnabledConfiguration.java b/plugins/coverage/src/com/intellij/execution/configurations/coverage/JavaCoverageEnabledConfiguration.java index 23423d081f19..b31ce1693d69 100644 --- a/plugins/coverage/src/com/intellij/execution/configurations/coverage/JavaCoverageEnabledConfiguration.java +++ b/plugins/coverage/src/com/intellij/execution/configurations/coverage/JavaCoverageEnabledConfiguration.java @@ -99,21 +99,21 @@ public final class JavaCoverageEnabledConfiguration extends CoverageEnabledConfi } public String @Nullable [] getPatterns() { - if (myCoveragePatterns != null) { - List patterns = new ArrayList<>(); - for (ClassFilter coveragePattern : myCoveragePatterns) { - if (coveragePattern.isEnabled() && coveragePattern.isInclude()) patterns.add(coveragePattern.getPattern()); - } - return ArrayUtilRt.toStringArray(patterns); - } - return null; + return getPatterns(true); } public String @Nullable [] getExcludePatterns() { + return getPatterns(false); + } + + private String @Nullable [] getPatterns(boolean include) { if (myCoveragePatterns != null) { List patterns = new ArrayList<>(); for (ClassFilter coveragePattern : myCoveragePatterns) { - if (coveragePattern.isEnabled() && !coveragePattern.isInclude()) patterns.add(coveragePattern.getPattern()); + if (coveragePattern == null) continue; + if (coveragePattern.isEnabled() && coveragePattern.isInclude() == include) { + patterns.add(coveragePattern.getPattern()); + } } return ArrayUtilRt.toStringArray(patterns); } @@ -179,6 +179,7 @@ public final class JavaCoverageEnabledConfiguration extends CoverageEnabledConfi // patterns if (myCoveragePatterns != null) { for (ClassFilter pattern : myCoveragePatterns) { + if (pattern == null) continue; @NonNls final Element patternElement = new Element(COVERAGE_PATTERN_ELEMENT_NAME); pattern.writeExternal(patternElement); element.addContent(patternElement);