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-dependency-analyzer.git
commit bb1464b7364c05ba2cc442736106c3f7be14c9e2 Author: Charles Honton <chon...@proofpoint.com> AuthorDate: Mon Feb 21 21:15:21 2022 -0800 MSHARED-1039: Fix array parsing --- .../dependency/analyzer/asm/ResultCollector.java | 25 +++++++++++++++------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ResultCollector.java b/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ResultCollector.java index 0cc5924..83173c3 100644 --- a/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ResultCollector.java +++ b/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ResultCollector.java @@ -19,11 +19,11 @@ package org.apache.maven.shared.dependency.analyzer.asm; * under the License. */ -import org.objectweb.asm.Type; - import java.util.HashSet; import java.util.Set; +import org.objectweb.asm.Type; + /** * <p>ResultCollector class.</p> * @@ -57,15 +57,24 @@ public class ResultCollector } // decode arrays - if ( name.startsWith( "[L" ) && name.endsWith( ";" ) ) + if ( name.charAt( 0 ) == '[' ) { - name = name.substring( 2, name.length() - 1 ); + int i = 0; + do + { + ++i; + } + while ( name.charAt( i ) == '[' ); // could have array of array ... + if ( name.charAt( i ) != 'L' ) + { + // ignore array of scalar types + return; + } + name = name.substring( i + 1, name.length() - 1 ); } // decode internal representation - name = name.replace( '/', '.' ); - - classes.add( name ); + add( name.replace( '/', '.' ) ); } void addDesc( final String desc ) @@ -82,7 +91,7 @@ public class ResultCollector break; case Type.OBJECT: - addName( t.getClassName().replace( '.', '/' ) ); + addName( t.getClassName() ); break; default: