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 <[email protected]> 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();
