Hi all,
We're trying to convert an existing large project to use Ivy. It's an
OSGi project, so it's already sorted into modules (bundles) and Ivy
makes a lot of sense. The problem is that the project has a lot of
modules (83) and since we're moving from a monolithic project it's
massively interdependent, there are circular dependencies all through
it. When we try to run an ivy:buildlist on the whole project, it just
barfs with a java.lang.OutOfMemoryError: Java heap space. If we try to
run the buildlist giving it a single module as a root it gives a
java.lang.StackOverflowError:
Caused by: java.lang.StackOverflowError
at java.util.HashMap.hash(HashMap.java:264)
at java.util.HashMap.get(HashMap.java:320)
at
org.apache.ivy.ant.IvyBuildList.processFilterNodeFromRoot(IvyBuildList.java:331)
at
org.apache.ivy.ant.IvyBuildList.processFilterNodeFromRoot(IvyBuildList.java:334)
at
org.apache.ivy.ant.IvyBuildList.processFilterNodeFromRoot(IvyBuildList.java:334)
at
org.apache.ivy.ant.IvyBuildList.processFilterNodeFromRoot(IvyBuildList.java:334)
at
org.apache.ivy.ant.IvyBuildList.processFilterNodeFromRoot(IvyBuildList.java:334)
etc etc
The program outputs are available here:
http://colinfleming.net/all.html (caution - 11Mb)
http://colinfleming.net/compilation.html
Is there anything that we can do to get this up and running? Obviously
we have a lot of refactoring to do, but if possible I'd at least like
to get the thing building first. Is this an Ivy bug or does it simply
not handle circular dependencies well?
Thanks in advance,
Colin