Jonathan Haber created MSHARED-545:
--------------------------------------
Summary: maven-dependency-analyzer fails on classes containing
constant long or double
Key: MSHARED-545
URL: https://issues.apache.org/jira/browse/MSHARED-545
Project: Maven Shared Components
Issue Type: Bug
Affects Versions: maven-dependency-analyzer-1.7
Reporter: Jonathan Haber
Priority: Blocker
The maven-dependency-analyzer was updated to parse the constant pool on each
class file so that it can discover method references and constant references,
but the ConstantPoolParser is missing two critical lines that cause it to throw
an exception on any class file containing a constant long or constant double
field. According to the
[Javadoc|https://github.com/apache/maven-shared/blob/ca1f714442eb49439a1f184ba8177e7795158b75/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ConstantPoolParser.java#L34]
the class was adapted from [this|http://stackoverflow.com/a/32278587/23691]
stack overflow answer. If you look inside the switch statement at the cases for
longs and doubles, it increments the index. But the ConstantPoolParser is
[missing|https://github.com/apache/maven-shared/blob/ca1f714442eb49439a1f184ba8177e7795158b75/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ConstantPoolParser.java#L118-L123]
this increment. This causes it to land
[here|https://github.com/apache/maven-shared/blob/ca1f714442eb49439a1f184ba8177e7795158b75/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ConstantPoolParser.java#L95-L96]
and throw an exception on all but the most trivial codebases. In
[this|https://github.com/apache/maven-shared/pull/10] pull request I fixed the
bug and updated one of the test classes to have a constant long field to
prevent regressions.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)