You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2022/09/08 19:13:23 UTC
[maven-common-artifact-filters] branch master updated: [MSHARED-1130] Sanitised value nullability in match(Pattern, boolean, String)
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-common-artifact-filters.git
The following commit(s) were added to refs/heads/master by this push:
new 500569d [MSHARED-1130] Sanitised value nullability in match(Pattern, boolean, String)
500569d is described below
commit 500569dad88b8f91e77116a2743a4685c920bed5
Author: Andrzej Jarmoniuk <gh...@jarmoniuk.nl>
AuthorDate: Thu Sep 8 06:48:53 2022 +0200
[MSHARED-1130] Sanitised value nullability in match(Pattern, boolean, String)
---
.../filter/PatternIncludesArtifactFilter.java | 2 +-
.../filter/AbstractPatternArtifactFilterTest.java | 34 ++++++++++++++++++----
2 files changed, 30 insertions(+), 6 deletions(-)
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/PatternIncludesArtifactFilter.java b/src/main/java/org/apache/maven/shared/artifact/filter/PatternIncludesArtifactFilter.java
index 3afbbde..274e885 100644
--- a/src/main/java/org/apache/maven/shared/artifact/filter/PatternIncludesArtifactFilter.java
+++ b/src/main/java/org/apache/maven/shared/artifact/filter/PatternIncludesArtifactFilter.java
@@ -650,7 +650,7 @@ public class PatternIncludesArtifactFilter implements ArtifactFilter, Statistics
private static boolean match( final String pattern, final boolean containsAsterisk, final String value )
{
char[] patArr = pattern.toCharArray();
- char[] strArr = value.toCharArray();
+ char[] strArr = value != null ? value.toCharArray() : new char[0];
int patIdxStart = 0;
int patIdxEnd = patArr.length - 1;
int strIdxStart = 0;
diff --git a/src/test/java/org/apache/maven/shared/artifact/filter/AbstractPatternArtifactFilterTest.java b/src/test/java/org/apache/maven/shared/artifact/filter/AbstractPatternArtifactFilterTest.java
index 2a6d914..8154a6f 100644
--- a/src/test/java/org/apache/maven/shared/artifact/filter/AbstractPatternArtifactFilterTest.java
+++ b/src/test/java/org/apache/maven/shared/artifact/filter/AbstractPatternArtifactFilterTest.java
@@ -19,20 +19,22 @@ package org.apache.maven.shared.artifact.filter;
* under the License.
*/
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.handler.ArtifactHandler;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.junit.Test;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
public abstract class AbstractPatternArtifactFilterTest
{
@@ -579,4 +581,26 @@ public abstract class AbstractPatternArtifactFilterTest
assertTrue( filter.include( artifact2 ) );
}
}
+
+ @Test
+ public void testPartialWildcardShouldNotMatchEmptyComponent()
+ {
+ Artifact artifact = mock( Artifact.class );
+ when( artifact.getGroupId() ).thenReturn( "test-group" );
+ when( artifact.getArtifactId() ).thenReturn( "test-artifact" );
+ when( artifact.getVersion() ).thenReturn( "test-version" );
+ when( artifact.hasClassifier() ).thenReturn( false );
+
+ ArtifactFilter filter = createFilter(
+ Collections.singletonList( "test-group:test-artifact:*:ERROR*" ) );
+
+ if ( isInclusionNotExpected() )
+ {
+ assertTrue( filter.include( artifact ) );
+ }
+ else
+ {
+ assertFalse( filter.include( artifact ) );
+ }
+ }
}