ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Gibson (JIRA)" <>
Subject [jira] Updated: (IVY-1067) Exclusions not properly applied to circular dependencies
Date Thu, 16 Apr 2009 21:20:15 GMT


John Gibson updated IVY-1067:

    Attachment: circular_dependency_bug.tgz

Here is a test case illustrating the issue.

There is a single dependency, dom4j#dom4j 1.5.2 and several exclusion requests in the ivy
A single dependency exclude of icu4j, a global exclusion of tagsoup, and a global exclusion
of the StAX API.

The first two are transitive dependencies of dom4j by way of jaxen.  The last is a direct
dependency of dom4j.  Jaxen has a circular dependency on dom4j and the exclusion calculations
for all of its dependencies is not reliable.

If you run 'ant test' you should see that the lib directory contains icu4j and tagsoup despite
their explicit exclusion.  However, you'll also notice that the exclusion of the StAX API
was successful.

Note that there is also an override to force jdom to 1.0 because the jdom b10 release on
has a bad version in the POM file.  It shouldn't affect the outcome of the test.

> Exclusions not properly applied to circular dependencies
> --------------------------------------------------------
>                 Key: IVY-1067
>                 URL:
>             Project: Ivy
>          Issue Type: Bug
>    Affects Versions: 2.0, 2.1.0-RC1
>         Environment:  % java -version
> java version "1.5.0_16"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b06-284)
> Java HotSpot(TM) Client VM (build 1.5.0_16-133, mixed mode, sharing)
>  % ant -version
> Apache Ant version 1.7.0 compiled on August 25 2008
>            Reporter: John Gibson
>         Attachments: circular_dependency_bug.tgz
> Exclusion rules are not applied properly to circular dependencies.
> Specifically, in doesCallersExclude() in org.apache.ivy.core.resolve.IvyNodeCallers this
return condition:
>         if (callersStack.contains(node.getId())) {
>             return false;
>         }
> causes the process to abort before reaching the exclusion rules at the top-level module.
> I examined the source for 2.1.0 RC1, but I've experienced the same behavior under 2.0.0.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message