maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Haber (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MSHARED-545) maven-dependency-analyzer fails on classes containing constant long or double
Date Tue, 09 Aug 2016 14:32:20 GMT

    [ https://issues.apache.org/jira/browse/MSHARED-545?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15413617#comment-15413617
] 

Jonathan Haber commented on MSHARED-545:
----------------------------------------

Just to be clear, this doesn't affect maven-dependency-analyzer-1.6. The broken code was only
in trunk and never part of an official release.

> 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.6
>            Reporter: Jonathan Haber
>            Assignee: Michael Osipov
>            Priority: Blocker
>             Fix For: maven-dependency-analyzer-1.7
>
>
> 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)

Mime
View raw message