You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "John Gibson (JIRA)" <ji...@apache.org> on 2009/04/16 23:12:14 UTC

[jira] Created: (IVY-1067) Exclusions not properly applied to circular dependencies

Exclusions not properly applied to circular dependencies
--------------------------------------------------------

                 Key: IVY-1067
                 URL: https://issues.apache.org/jira/browse/IVY-1067
             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


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.


[jira] Updated: (IVY-1067) Exclusions not properly applied to circular dependencies

Posted by "John Gibson (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/IVY-1067?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

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 file.
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 repo1.maven.org 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: https://issues.apache.org/jira/browse/IVY-1067
>             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.