[ 
https://issues.apache.org/jira/browse/MSHARED-1130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17601626#comment-17601626
 ] 

Andrzej Jarmoniuk edited comment on MSHARED-1130 at 9/8/22 4:40 AM:
--------------------------------------------------------------------

Simple unit test to reproduce:

{code:java:title=AbstractPatternArtifactFilterTest}
@Test
public void testPartialWildcardShouldNotMatchEmptyComponent()
{
    final String groupId = "com.mycompany.myproject";
    final String artifactId = "some-artifact-id";
    final String version = "1.0.0";

    Artifact artifact = mock( Artifact.class );
    when( artifact.getGroupId() ).thenReturn( groupId );
    when( artifact.getArtifactId() ).thenReturn( artifactId );
    when( artifact.getVersion() ).thenReturn( version );
    when( artifact.getType() ).thenReturn( null );

    final ArtifactFilter filter = createFilter(
            Collections.singletonList( 
"com.mycompany.myproject:some-artifact-id:*:ERROR*" ) );

    if ( isInclusionNotExpected() )
    {
        assertTrue( filter.include( artifact ) );
    }
    else
    {
        assertFalse( filter.include( artifact ) );
    }
}
{code}


was (Author: ajarmoniuk):
Simple unit test to reproduce:

{code:java:title=AbstractPatternArtifactFilterTest}
@Test
public void testPartialWildcardShouldNotMatchEmptyComponent()
{
    final String groupId = "com.mycompany.myproject";
    final String artifactId = "some-artifact-id";
    final String version = "1.0.0";

    Artifact artifact = mock( Artifact.class );
    when( artifact.getGroupId() ).thenReturn( groupId );
    when( artifact.getArtifactId() ).thenReturn( artifactId );
    when( artifact.getVersion() ).thenReturn( version );
    when( artifact.getType() ).thenReturn( null );

    final ArtifactFilter filter = createFilter(
            Collections.singletonList( 
"com.mycompany.myproject:some-artifact-id:*:ERROR*" ) );

    if ( isInclusionNotExpected() )
    {
        assertFalse( filter.include( artifact ) );
    }
    else
    {
        assertTrue( filter.include( artifact ) );
    }
}
{code}

> PatternIncludesArtifactFilters raising NPE for patterns w/ wildcards and 
> artifactoid w/ null on any coordinate
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: MSHARED-1130
>                 URL: https://issues.apache.org/jira/browse/MSHARED-1130
>             Project: Maven Shared Components
>          Issue Type: Bug
>    Affects Versions: maven-common-artifact-filters-3.3.1
>            Reporter: Andrzej Jarmoniuk
>            Priority: Major
>
> Encountered an NPE from {{PatternIncludesArtifactFilters.match}} if the 
> pattern includes wildcards and the artifactoid returns null on any of its 
> coordinates.
> In such cases, the {{value}} argument will be null, which will lead to an NPE 
> when it's being dereferenced in line 653.
> This led to https://github.com/mojohaus/versions-maven-plugin/issues/673
> In this case, {{token}} was {{JET*-SNAPSHOT}} and {{value}} as returned from 
> the artifactoid was null.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to