ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xavier Hanin (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (IVY-874) can't use gotoNode with a node which has not been visited yet
Date Wed, 03 Sep 2008 14:23:44 GMT

     [ 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.


Mime
View raw message