You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2021/04/24 15:16:19 UTC

[maven-javadoc-plugin] 01/03: Proposed fix for https://issues.apache.org/jira/browse/MJAVADOC-661.

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

rfscholte pushed a commit to branch MJAVADOC-661
in repository https://gitbox.apache.org/repos/asf/maven-javadoc-plugin.git

commit f563e9c806413411181caa374000841d5d25ea35
Author: Allen D. Ball <ba...@hcf.dev>
AuthorDate: Mon Aug 24 19:53:33 2020 -0700

    Proposed fix for https://issues.apache.org/jira/browse/MJAVADOC-661.
---
 .../java/org/apache/maven/plugins/javadoc/JavadocUtil.java | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
index 0f8c822..6e5e650 100644
--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
@@ -49,7 +49,6 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedHashSet;
 import java.util.List;
-import java.util.Locale;
 import java.util.NoSuchElementException;
 import java.util.Properties;
 import java.util.Set;
@@ -1017,16 +1016,23 @@ public class JavadocUtil
         }
 
         List<String> classes = new ArrayList<>();
+        Pattern pattern =
+            Pattern.compile( "(?i)^(META-INF/versions/(?<v>[0-9]+)/)?(?<n>.+)[.]class$" );
         try ( JarInputStream jarStream = new JarInputStream( new FileInputStream( jarFile ) ) )
         {
             for ( JarEntry jarEntry = jarStream.getNextJarEntry(); jarEntry != null; jarEntry =
                 jarStream.getNextJarEntry() )
             {
-                if ( jarEntry.getName().toLowerCase( Locale.ENGLISH ).endsWith( ".class" ) )
+                Matcher matcher = pattern.matcher( jarEntry.getName() );
+                if ( matcher.matches() )
                 {
-                    String name = jarEntry.getName().substring( 0, jarEntry.getName().indexOf( "." ) );
+                    String version = matcher.group( "v" );
+                    if ( StringUtils.isEmpty( version ) || JavaVersion.JAVA_VERSION.isAtLeast( version ) )
+                    {
+                        String name = matcher.group( "n" );
 
-                    classes.add( name.replaceAll( "/", "\\." ) );
+                        classes.add( name.replaceAll( "/", "\\." ) );
+                    }
                 }
 
                 jarStream.closeEntry();