You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2022/04/23 16:30:37 UTC

[maven-indexer] branch master updated: [MINDEXER-144] IOOBEx on GAV local metadata (#198)

This is an automated email from the ASF dual-hosted git repository.

cstamas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-indexer.git


The following commit(s) were added to refs/heads/master by this push:
     new 69a9c36  [MINDEXER-144] IOOBEx on GAV local metadata (#198)
69a9c36 is described below

commit 69a9c3614112c4c1bb935f7711f0231acb676d46
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Sat Apr 23 18:30:31 2022 +0200

    [MINDEXER-144] IOOBEx on GAV local metadata (#198)
    
    Scanner throws IOOBEx when scanning local repository
    due GAV level locally installed metadata. Filter it
    out better (m2gav calculator and context producer).
    
    Added UT that initially reproduced the issue, and now
    passes OK.
---
 .../maven/index/DefaultArtifactContextProducer.java  |  1 +
 .../apache/maven/index/artifact/M2GavCalculator.java |  3 ++-
 .../maven/index/artifact/M2GavCalculatorTest.java    | 20 ++++++++++++++++++++
 3 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultArtifactContextProducer.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultArtifactContextProducer.java
index 88e6fa7..f7b8c3d 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultArtifactContextProducer.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultArtifactContextProducer.java
@@ -144,6 +144,7 @@ public class DefaultArtifactContextProducer
         String filename = file.getName();
 
         return !filename.equals( "maven-metadata.xml" )
+                && !( filename.startsWith( "maven-metadata-" ) && filename.endsWith( ".xml" ) )
                 // || filename.endsWith( "-javadoc.jar" )
                 // || filename.endsWith( "-javadocs.jar" )
                 // || filename.endsWith( "-sources.jar" )
diff --git a/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java b/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java
index e432749..72b1da0 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/artifact/M2GavCalculator.java
@@ -91,7 +91,8 @@ public class M2GavCalculator
                 s = s.substring( 0, s.length() - 4 );
             }
 
-            if ( s.endsWith( "maven-metadata.xml" ) )
+            if ( s.endsWith( "maven-metadata.xml" )
+                    || ( fileName.startsWith( "maven-metadata-" ) && fileName.contains( ".xml" ) ) )
             {
                 return null;
             }
diff --git a/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java b/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java
index 7fbda14..a5f6201 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/artifact/M2GavCalculatorTest.java
@@ -565,6 +565,26 @@ public class M2GavCalculatorTest
 
         path = gavCalculator.gavToPath( gav );
         assertEquals( "/foo/artifact/SNAPSHOT/artifact-20080623.175436-1.jar", path );
+
+        gav = gavCalculator.pathToGav( "/dev/mbien/hintmod/1.0-SNAPSHOT/hintmod-1.0-SNAPSHOT.pom" );
+        assertEquals( "dev.mbien", gav.getGroupId() );
+        assertEquals( "hintmod", gav.getArtifactId() );
+        assertEquals( "1.0-SNAPSHOT", gav.getVersion() );
+        assertEquals( "1.0-SNAPSHOT", gav.getBaseVersion() );
+        assertEquals( null, gav.getClassifier() );
+        assertEquals( "pom", gav.getExtension() );
+        assertEquals( "hintmod-1.0-SNAPSHOT.pom", gav.getName() );
+        assertEquals( true, gav.isSnapshot() );
+        assertEquals( false, gav.isHash() );
+        assertEquals( null, gav.getHashType() );
+
+        path = gavCalculator.gavToPath( gav );
+        assertEquals( "/dev/mbien/hintmod/1.0-SNAPSHOT/hintmod-1.0-SNAPSHOT.pom", path );
+
+        gav = gavCalculator.pathToGav( "/dev/mbien/hintmod/1.0-SNAPSHOT/maven-metadata-local.xml" ); // causes MINDEXER-144
+        assertNull( gav );
+        gav = gavCalculator.pathToGav( "/dev/mbien/hintmod/maven-metadata-local.xml" );
+        assertNull( gav );
     }
 
     public void testNegGav()