Hi
I should also say that this is with 1.4.1. I've tried with 2.0-alpha2
and I still get the NPE. The stack this time is
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)
However, there is a slight difference in the behaviour. With 2.0-alpha2,
if I do the resolve a second time without cleaning the cache it works.
If I clean the cache again and do the resolve I get the NPE again. With
1.4.1 I get it every time, regardless of whether the cache is clean or not.
regards
Ross
Ross Clewley wrote:
Hi
I need some help sorting out a NullPointerException that I'm getting
during resolution. The stack looks like this.
java.lang.NullPointerException
at fr.jayasoft.ivy.IvyNode.isEvicted(IvyNode.java:367)
at fr.jayasoft.ivy.IvyNode.loadData(IvyNode.java:590)
at fr.jayasoft.ivy.Ivy.fetchDependencies(Ivy.java:1417)
at fr.jayasoft.ivy.Ivy.fetchDependencies(Ivy.java:1443)
at fr.jayasoft.ivy.Ivy.doFetchDependencies(Ivy.java:1492)
at fr.jayasoft.ivy.Ivy.fetchDependencies(Ivy.java:1424)
at fr.jayasoft.ivy.Ivy.doFetchDependencies(Ivy.java:1492)
at fr.jayasoft.ivy.Ivy.fetchDependencies(Ivy.java:1424)
at fr.jayasoft.ivy.Ivy.doFetchDependencies(Ivy.java:1492)
at fr.jayasoft.ivy.Ivy.fetchDependencies(Ivy.java:1433)
at fr.jayasoft.ivy.Ivy.doFetchDependencies(Ivy.java:1476)
at fr.jayasoft.ivy.Ivy.fetchDependencies(Ivy.java:1424)
at fr.jayasoft.ivy.Ivy.getDependencies(Ivy.java:1343)
at fr.jayasoft.ivy.Ivy.resolve(Ivy.java:1136)
at fr.jayasoft.ivy.Ivy.resolve(Ivy.java:1093)
at fr.jayasoft.ivy.ant.IvyResolve.execute(IvyResolve.java:167)
I'd like to be able to figure out a minimal testcase to reproduce this
so I can log a Jira issue and also hopefully work around it. The
trouble is I'm having problems figuring out what that minimal testcase
is. The problem occurs with certain sets of dependencies and can go
away again when those dependencies are changed, or even when the
dependencies are re-ordered. I'm hoping someone may be able to give me
some pointers about what to look at to help nail this down a bit more
firmly.
The problem occurs whilst resolving transitive configurations. We have
a build systems comprising 170 or so modules, each of which have 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"/>
These modules declare dependencies amongst themselves or third party
dependencies in their own filesystem repository with Ivy files that
just have the default conf. Incase it's relevant the
defaultconfmapping used throughout is "compile->default(*);*->@(*)".
It's when resolving the transitive runtime of test configurations that
the NPE occurs.
It's difficult for me to give you a selection of the modules and their
dependencies that cause the problem as there would be too many. That
is why I want to try to understand the issue better and produce that
minimal testcase. Any ideas?
thanks
Ross