On 18/10/2007, Gilles Scokart <[EMAIL PROTECTED]> wrote:
> I didn't manage to find a scenario to reproduce it.  If someone want to try,
> it is a very interresting algorithmic exercice.

I have attached a zipped part of a repository that will reproduce the
bug to IVY-624. It is in fact a reproduction of the part of Nascif's
dependency chain that misbehaves. The complete dependency chain is:

mod1 -> mod2
mod1 -> mod3
mod1 -> mod4
mod2 -> mod3
mod2 -> mod5
mod3 -> mod5
mod4 -> mod2
mod5 -> mod11
mod6 -> mod2
mod6 -> mod5
mod7 -> mod2
mod7 -> mod3
mod7 -> mod4
mod7 -> mod5
mod7 -> mod8
mod8 -> mod4
mod8 -> mod5
mod9 -> mod10
mod9 -> mod2
mod9 -> mod3
mod9 -> mod4
mod9 -> mod5
mod9 -> mod6
mod9 -> mod7
mod9 -> mod8
mod10 -> mod2
mod10 -> mod4
mod11 -> mod1
mod11 -> mod2
mod11 -> mod3
mod11 -> mod4
mod11 -> mod5
mod11 -> mod9
mod11 -> mod9

I haven't looked into reducing the size of the dependencies. The first
target was to reproduce the bug.

In order to reproduce the bug, place the contents of the zip-file
under ivy/test/repositories/1 and write a testcase in
test/java/org/apache/ivy/core/resolve/ResolveTest:

public void testCircular-IVY-624() throws Exception {
ResolveReport report = ivy.resolve(new
File("test/repositories/1/ivy-624/mod1/ivys/ivy-1.0.xml")
.toURL(), getResolveOptions(new String[] {"default"}));
}

When I test it, the testcase goes on for about a minute spitting out
diagnostic messages before it ends in an error. However, I cannot get
JUnit to write out the cause of the error, but I assume it is the same
StackOverflowException that Nascif observed.

HTH

Jacob

Reply via email to