Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
2.0.0-alpha-2
-
None
-
None
Description
During a resolve of a transitive configuration we see
java.lang.NullPointerException
at org.apache.ivy.core.resolve.IvyNodeEviction$EvictionData.<init>(IvyNodeEviction.java:48)
at org.apache.ivy.core.resolve.IvyNodeEviction.markEvicted(IvyNodeEviction.java:266)
at org.apache.ivy.core.resolve.IvyNode.markEvicted(IvyNode.java:1101)
at org.apache.ivy.core.resolve.ResolveEngine.getDependencies(ResolveEngine.java:523)
at org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:236)
at org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:194)
at org.apache.ivy.Ivy.resolve(Ivy.java:256)
at org.apache.ivy.ant.IvyResolve.doExecute(IvyResolve.java:207)
at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:281)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
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.apache.tools.ant.Project.executeTargets(Project.java:1181)
at org.apache.tools.ant.Main.runBuild(Main.java:698)
at org.apache.tools.ant.Main.startAnt(Main.java:199)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
It's difficult to provide a simple testcase for this as I've only seen it in our large modular build system and it's sensitive to things like the order of the dependencies.
The modules use the following configurations
<conf name="default" extends="package" transitive="true"/>
<conf name="compile" extends="default" visibility="private" transitive="false"/>
<conf name="runtime" extends="default" visibility="public" transitive="true"/>
<conf name="test" extends="runtime" transitive="true"/>
The error occurs when resolving the transitive test conf.
Another factor that may or not be relevant is that none of our resolvers have a version in the pattern.