This is an automated email from the ASF dual-hosted git repository.
sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-enforcer.git
The following commit(s) were added to refs/heads/master by this push:
new b25c800e Fix NPE when a classifier part is specified but an artifact
classifier is null rather than empty
b25c800e is described below
commit b25c800ed72c7d25e156917f8ca67316501e5e67
Author: Ric Harris <[email protected]>
AuthorDate: Wed Jul 2 19:56:19 2025 +0100
Fix NPE when a classifier part is specified but an artifact classifier is
null rather than empty
---
.../apache/maven/enforcer/rules/utils/ArtifactMatcher.java | 8 ++++----
.../enforcer/rules/dependency/BannedDependenciesTest.java | 13 +++++++++++++
2 files changed, 17 insertions(+), 4 deletions(-)
diff --git
a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/utils/ArtifactMatcher.java
b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/utils/ArtifactMatcher.java
index 74c54ec5..caf2c599 100644
---
a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/utils/ArtifactMatcher.java
+++
b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/utils/ArtifactMatcher.java
@@ -145,6 +145,10 @@ public final class ArtifactMatcher {
}
private boolean matches(int index, String input) {
+ // TODO: Check if this can be done better or prevented earlier.
+ if (input == null) {
+ input = "";
+ }
// return matches(parts[index], input);
if (partsRegex[index] == null) {
String regex = parts[index]
@@ -157,10 +161,6 @@ public final class ArtifactMatcher {
.replace("(", "\\(")
.replace(")", "\\)");
- // TODO: Check if this can be done better or prevented earlier.
- if (input == null) {
- input = "";
- }
partsRegex[index] = java.util.regex.Pattern.compile(regex);
}
return partsRegex[index].matcher(input).matches();
diff --git
a/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/dependency/BannedDependenciesTest.java
b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/dependency/BannedDependenciesTest.java
index 1f453161..e0ecf8ae 100644
---
a/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/dependency/BannedDependenciesTest.java
+++
b/enforcer-rules/src/test/java/org/apache/maven/enforcer/rules/dependency/BannedDependenciesTest.java
@@ -57,6 +57,19 @@ class BannedDependenciesTest {
@InjectMocks
private BannedDependencies rule;
+ @Test
+ void excludesDoNotUseTransitiveDependenciesNullSafe() throws Exception {
+ when(session.getCurrentProject()).thenReturn(project);
+
when(project.getDependencyArtifacts()).thenReturn(ARTIFACT_STUB_FACTORY.getTypedArtifacts());
+
+ rule.setSearchTransitive(false);
+ rule.setExcludes(Collections.singletonList("g:b:*:*:compile:*"));
+
+ assertThatCode(rule::execute)
+ .isInstanceOf(EnforcerRuleException.class)
+ .hasMessageContaining("g:b:jar:1.0 <--- banned via the
exclude/include list");
+ }
+
@Test
void excludesDoNotUseTransitiveDependencies() throws Exception {
when(session.getCurrentProject()).thenReturn(project);