You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "Stephen Haberman (JIRA)" <ji...@apache.org> on 2015/04/21 19:13:58 UTC

[jira] [Comment Edited] (IVY-1485) Incorrect revision of dependencies put in to delivered Ivy files

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

Stephen Haberman edited comment on IVY-1485 at 4/21/15 5:13 PM:
----------------------------------------------------------------

Wow, this is really frustrating. I just spent ~a day diagnosing and fixing this issue, only to find the bug (once I realized what it was) was already report *and* already patched.

Before seeing this patch, I had taken a different approach, of comparing the version in props against what we want to store the 2nd time, but I'm ambivalent, and if anything the existing patch has tests (which is amazing, kudos), so it should win.

Can one of the committers take a look at this patch and commit it? 


was (Author: stephenh):
Wow, this is really frustrating. I just spent ~a day diagnosing and fixing this issue, only to find the bug (once I realized what it was) was already report *and* already patched.

Before seeing is patch, I had taken a different approach, of comparing the version in props against what we want to store the 2nd time, but I'm ambivalent, and if anything the existing patch has tests (which is amazing, kudos), so it should win.

Can one of the committers take a look at this patch and commit it? 

> Incorrect revision of dependencies put in to delivered Ivy files
> ----------------------------------------------------------------
>
>                 Key: IVY-1485
>                 URL: https://issues.apache.org/jira/browse/IVY-1485
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.3.0, 2.4.0-RC1
>            Reporter: Perrin Morrow
>            Priority: Critical
>         Attachments: 0001-Add-test-cases-for-IVY-1485.patch, 0002-Ensure-dependency-is-applicable-to-all-confs-of-matc.patch, ivy-1485-test-cases.patch
>
>
> Ivy deliver incorrectly replaces top-level dependency revision with one from a transitive dependency in a different conf.
> When writing the resolved Ivy properties into the cache, the Ivy ResolveEngine does not take into account the top-level confs. If it finds the same dependency on any transitive path it will prefer the resolved revision of the transitive dependency over that of the top-level dependency even when that transitive dependency is being resolved into a completely different top-level conf. This results in a delivered Ivy file, that when resolved again will pull in the wrong version of that top-level dependency.
> Consider the following Ivy dependency chain:
> {noformat}
> top-level
>   [conf1]
>     - modA#1
>   [conf2]
>     - modB#1
>       - modA#2
> {noformat}
> Ivy resolve and retrieve will pull modA#1 into conf1 and modA#2 into conf2, as expected.
> Ivy deliver, however, will replace modA#1 with modA#2 in the delivered ivy descriptor. When that delivered ivy file is resolved again (by some other module depending on it) it will pull in modA#2 into both conf1 and conf2.
> This appears to be a regression in Ivy 2.3.0.  It did not happen with Ivy 2.2.0.  (Maybe related to IVY-1300?)
> We have written some test cases that demonstrate the problem (a diff against the Git repository master) which I will attach.
> We're also working on a patch to fix this but so far it has proved elusive.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)