You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "Maarten Coene (JIRA)" <ji...@apache.org> on 2010/05/07 22:12:52 UTC

[jira] Updated: (IVY-1157) buildnumber does not work when there is a dependency referenced by the same ivy file.

     [ https://issues.apache.org/jira/browse/IVY-1157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Maarten Coene updated IVY-1157:
-------------------------------

    Fix Version/s: 2.2.0-RC1
                       (was: trunk)

> buildnumber does not work when there is a dependency referenced by the same ivy file.
> -------------------------------------------------------------------------------------
>
>                 Key: IVY-1157
>                 URL: https://issues.apache.org/jira/browse/IVY-1157
>             Project: Ivy
>          Issue Type: Bug
>          Components: Ant
>    Affects Versions: 2.1.0
>         Environment: MacOSX, IVY 2.1.0
>            Reporter: Dan Diodati
>            Assignee: Maarten Coene
>             Fix For: 2.2.0-RC1
>
>
> I ran into a case where I resolve one ivy file that references a artifact called tools. Then later I try to get a new build number of the tools artifact and it acts as if it does not exist and starts at 1.
> This seems to occur because in the IvyBuildNumber it uses a ModuleId object which does some caching of the module information and then does object comparisions in the getMatcher method.
> In my case the String object ends up changing and so it thinks there is not an existing artifact giving me the 1.0 version instead of the correct one.
> I have some test build to simulate the problem and would attach it if I could. You can ping me and I can send it to you.
> Note the second output will be: [echo] tool current revision is: working@sfdanmac.local; new revision is: 1.0
> Since there is a tools artifact with 1.1.0 it should return a result of 1.2 and not 1.0.
> I found the fix was to modify the IvyBuildNumber to do String comparisons using the equals operator instead of the ==. Here is the diff that fixes the issue:
> {noformat} 
> Index: src/java/org/apache/ivy/ant/IvyBuildNumber.java
> ===================================================================
> --- src/java/org/apache/ivy/ant/IvyBuildNumber.java	(revision 888715)
> +++ src/java/org/apache/ivy/ant/IvyBuildNumber.java	(working copy)
> @@ -165,9 +165,9 @@
>              private PatternMatcher regexp = new ExactOrRegexpPatternMatcher();
>          
>              public Matcher getMatcher(String expression) {
> -                if ((expression == organisation)
> -                        || (expression == module)
> -                        || (expression == branch)) {
> +                if ((expression.equals(organisation))
> +                        || (expression.equals(module))
> +                        || (expression.equals(branch))) {
>                      return exact.getMatcher(expression);
>                  }
>                  return regexp.getMatcher(expression);
> {noformat} 

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