[ https://issues.apache.org/jira/browse/IVY-1120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12753852#action_12753852 ]
Lucas Lech edited comment on IVY-1120 at 9/11/09 1:54 AM: ---------------------------------------------------------- I've been running two parallel debugging sessions - the ant task that was invoking *ivy:buildnumber* was in first session executed directly and in another one it was executed as dependency of some other task (somewhere down the line of dependency graph) - few other ivy tasks, like ivy:publish have been executed before so in both sessions *ivy:buildnumber* has been fed with exactly the same attributes session invoking the ivy:buildnumber "directly" got the exact matcher while the one invoking it indirectly got the regexp one\\ on both occasions _expression_ was equal to _organisation_ string-wise; in second session it wasn't equal address-wise though clearly the comparison in the matcher is broken (unless you're purposely comparing address values and I'm missing something here) after replacing == with .equals & rebuilding ivy, this task started working properly what's the reason for comparing references (ref) ant not values (*ref) ? was (Author: gibffe): I've been running two parallel debugging sessions - the ant task that was invoking *ivy:buildnumber* was in first session executed directly and in another one it was executed as dependency of some other task (somewhere down the line of dependency graph) - few other ivy tasks, like ivy:publish have been executed before so in both sessions *ivy:buildnumber* has been fed with exactly the same attributes session invoking the ivy:buildnumber "directly" got the exact matcher while the one invoking it indirectly got the regexp one\\ on both occasions _expression_ was equal to _organisation_ string-wise; in second session it wasn't equal address-wise though clearly the comparison in the matcher is broken (unless you're purposely comparing address values and I'm missing here) after replacing == with .equals & rebuilding ivy, this task started working properly what's the reason for comparing references (ref) ant not values (*ref) ? > IvyBuildNumber non-deterministic behaviour > ------------------------------------------ > > Key: IVY-1120 > URL: https://issues.apache.org/jira/browse/IVY-1120 > Project: Ivy > Issue Type: Bug > Components: Ant > Affects Versions: 2.1.0-RC2 > Environment: ant 1.7.1, windows xp > Reporter: Lucas Lech > > IvyBuildNumber.java -> doExecute() > creates an inline patternMatcher with this method: > {code:title=IvyBuildNumber.java|borderStyle=solid} > public Matcher getMatcher(String expression) { > if ((expression == organisation) > || (expression == module) > || (expression == branch)) { > return exact.getMatcher(expression); > } > return regexp.getMatcher(expression); > } > {code} > I'm guessing the == comparison is a typo ? Shouldn't it be saying *.equals* ? > I've been having issues with this task - non-deterministic results - I got > down in my debug to this place where I get wrong matcher when > *reference address comparison* fails. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.