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

Xavier Hanin resolved IVY-874.
------------------------------

    Resolution: Fixed

Well, actually this is not a bug, at least from what I reproduce on my own. The 
point is that Ivy does dependency resolution per configuration. Each 
configuration is isolated from the others. So in the runtime conf, you only 
have hibernate 3.2.6.ga, and thus end up with commons-collections 2.1.1. In 
default conf, with both hibernate and commons-collections 3.2.1, 
commons-collections 2.1.1 is evicted and not part of the conf. If you really 
want to always evict commons-collections 2.1.1, I suggest to put your 
commons-collections 3.2.1 dependency in your runtime conf.

And if I've misinterpreted the bug, do not hesitate to reopen once again.

> can't use gotoNode with a node which has not been visited yet
> -------------------------------------------------------------
>
>                 Key: IVY-874
>                 URL: https://issues.apache.org/jira/browse/IVY-874
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0-RC1
>         Environment: 2.0.0-rc1-local-20080805174033 (built from trunk); 
> checked using Eclipse 3.3 under Windows XP; Ant 1.7.0; jdk1.5.0_05
>            Reporter: rednix
>            Assignee: Xavier Hanin
>             Fix For: 2.0-RC1
>
>         Attachments: 
> hibernate-3.2.6.ga.and.commons-collections-3.2.1_trunk-2008-09-03.log, 
> ivy-bug-log-2008-08-06.txt, Test-test-default.png
>
>
> While using the latest version of Ivy built from the trunk 
> (2.0.0-rc1-local-20080805174033) I can't resolve hibernate 3.2.6 GA and 
> commons-collection 3.2.1 together. Hibernate 3.2.6ga has a dependency on 
> commons-collection 2.1.1 - but I want to include the latest revision 3.2.1 in 
> my project. Using the fairly old ivy-2.0.0-alpha2-incubating.jar there is not 
> such a problem.
> The configuration and error logs are as follows:
> ivy.xml:
> <ivy-module version="1.0">
>     <info organisation="Test" module="test"/>
>     <configurations>
>     <conf name="default" visibility="public" description="runtime 
> dependencies and master artifact can be used with this conf" 
> extends="runtime,master"/>
>                 <conf name="master" visibility="public" description="contains 
> only the artifact published by this module itself, with no transitive 
> dependencies"/>
>                 <conf name="compile" visibility="public" description="this is 
> the default scope, used if none is specified. Compile dependencies are 
> available in all classpaths."/>
>                 <conf name="provided" visibility="public" description="this 
> is much like compile, but indicates you expect the JDK or a container to 
> provide it. It is only available on the compilation classpath, and is not 
> transitive."/>
>                 <conf name="runtime" visibility="public" description="this 
> scope indicates that the dependency is not required for compilation, but is 
> for execution. It is in the runtime and test classpaths, but not the compile 
> classpath." extends="compile"/>
>                 <conf name="test" visibility="private" description="this 
> scope indicates that the dependency is not required for normal use of the 
> application, and is only available for the test compilation and execution 
> phases."/>
>                 <conf name="system" visibility="public" description="this 
> scope is similar to provided except that you have to provide the JAR which 
> contains it explicitly. The artifact is always available and is not looked up 
> in a repository."/>
>                 <conf name="optional" visibility="public" 
> description="contains all optional dependencies" />
>     </configurations>
>     <dependencies>
>         <dependency org="commons-collections" name="commons-collections" 
> rev="3.2.1" conf="default" />
>         <dependency org="org.hibernate" name="hibernate" rev="3.2.6.ga" 
> conf="runtime->runtime,master" />
>     </dependencies>
> </ivy-module>
> ivysettings.xml:
> <ivysettings>
> <settings defaultResolver="shared" />
>   <property name="ivy.shared.default.root"             
> value="https://[removed]"; override="false"/>
>   <property name="ivy.shared.default.ivy.pattern"      
> value="[organisation]/[module]/[revision]/[module]-ivy.xml" override="false"/>
>   <property name="ivy.shared.default.artifact.pattern" 
> value="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"
>  override="false"/>
>   <resolvers>    
>     <url name="shared">
>       <ivy 
> pattern="${ivy.shared.default.root}/${ivy.shared.default.ivy.pattern}" />
>       <artifact 
> pattern="${ivy.shared.default.root}/${ivy.shared.default.artifact.pattern}" 
> />  
>     </url>
>   </resolvers>
> </ivysettings>
> Error-Log:
> ...
> [ivy:retrieve] == resolving dependencies 
> org.hibernate#hibernate;3.2.6.ga->commons-collections#commons-collections;2.1.1
>  [compile->compile(*)]
> [ivy:retrieve] ERROR: You can't use gotoNode with a node which has not been 
> visited yet.
> [ivy:retrieve] Given node id=commons-collections#commons-collections;3.2.1
> [ivy:retrieve] :: problems summary ::
> [ivy:retrieve] :::: WARNINGS
> [ivy:retrieve] Error while parsing configuration resolve report C:\Documents 
> and Settings\[removed]\.ivy2\cache\Test-test-default.xml
> [ivy:retrieve] :::: ERRORS
> [ivy:retrieve] You can't use gotoNode with a node which has not been visited 
> yet.
> [ivy:retrieve] Given node id=commons-collections#commons-collections;3.2.1
> [ivy:retrieve]
> [ivy:retrieve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
> BUILD FAILED
> C:\workspaces\eclipseEuropa\Test\build.xml:433: impossible to resolve 
> dependencies:
>         java.lang.IllegalArgumentException: You can't use gotoNode with a 
> node which has not been visited yet.
> Given node id=commons-collections#commons-collections;3.2.1
>         at org.apache.ivy.ant.IvyResolve.doExecute(IvyResolve.java:319)
>         at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:277)
>         at 
> org.apache.ivy.ant.IvyPostResolveTask.ensureResolved(IvyPostResolveTask.java:206)
>         at 
> org.apache.ivy.ant.IvyPostResolveTask.prepareAndCheck(IvyPostResolveTask.java:153)
>         at org.apache.ivy.ant.IvyRetrieve.doExecute(IvyRetrieve.java:49)
>         at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:277)
>         at 
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at 
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>         at org.apache.tools.ant.Task.perform(Task.java:348)
>         at org.apache.tools.ant.Target.execute(Target.java:357)
>         at org.apache.tools.ant.Target.performTasks(Target.java:385)
>         at 
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
>         at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
>         at 
> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>         at 
> org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
>         at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
>         at 
> org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
>         at 
> org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
>        
>        
> The other error/warning concerning the report is not that critical but 
> annoying.
> The log prints out:
> [ivy:retrieve] resolving dependencies for configuration 'default'
> [ivy:retrieve] WARN: Error while parsing configuration resolve report 
> C:\Documents and Settings\[removed]\.ivy2\cache\Test-test-default.xml
> [ivy:retrieve] java.text.ParseException: failed to parse report: C:\Documents 
> and Settings\[removed]\.ivy2\cache\Test-test-default.xml: null
> [ivy:retrieve] at 
> org.apache.ivy.plugins.report.XmlReportParser.parse(XmlReportParser.java:299)
> [ivy:retrieve] at 
> org.apache.ivy.core.report.ConfigurationResolveReport.<init>(ConfigurationResolveReport.java:82)
> [ivy:retrieve] at 
> org.apache.ivy.core.resolve.ResolveEngine.getDependencies(ResolveEngine.java:483)
> [ivy:retrieve] at 
> org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:232)
> [ivy:retrieve] at 
> org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:190)
> [ivy:retrieve] at org.apache.ivy.Ivy.resolve(Ivy.java:502)
> [ivy:retrieve] at org.apache.ivy.ant.IvyResolve.doExecute(IvyResolve.java:232)
> [ivy:retrieve] at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:277)
> [ivy:retrieve] at 
> org.apache.ivy.ant.IvyPostResolveTask.ensureResolved(IvyPostResolveTask.java:206)
> [ivy:retrieve] at 
> org.apache.ivy.ant.IvyPostResolveTask.prepareAndCheck(IvyPostResolveTask.java:153)
> [ivy:retrieve] at 
> org.apache.ivy.ant.IvyRetrieve.doExecute(IvyRetrieve.java:49)
> [ivy:retrieve] at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:277)
> [ivy:retrieve] at 
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> [ivy:retrieve] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [ivy:retrieve] at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [ivy:retrieve] at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [ivy:retrieve] at java.lang.reflect.Method.invoke(Method.java:585)
> [ivy:retrieve] at 
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
> [ivy:retrieve] at org.apache.tools.ant.Task.perform(Task.java:348)
> [ivy:retrieve] at org.apache.tools.ant.Target.execute(Target.java:357)
> [ivy:retrieve] at org.apache.tools.ant.Target.performTasks(Target.java:385)
> [ivy:retrieve] at 
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
> [ivy:retrieve] at 
> org.apache.tools.ant.Project.executeTarget(Project.java:1298)
> [ivy:retrieve] at 
> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
> [ivy:retrieve] at 
> org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
> [ivy:retrieve] at 
> org.apache.tools.ant.Project.executeTargets(Project.java:1181)
> [ivy:retrieve] at 
> org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
> [ivy:retrieve] at 
> org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
> [ivy:retrieve] Caused by: java.lang.NumberFormatException: null 
> initially posted on the mailing list: 
> http://www.nabble.com/can%27t-use-gotoNode-with-a-node-which-has-not-been-visited-yet-td18850903.html
> I've already tried to change the order of the dependency definition but with 
> no luck (same result).
> The resolve using the ivy-2.0.0-alpha2-incubating.jar works perfectly. I will 
> attach the console log for that to the issue as a textfile.

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

Reply via email to