Description
The loop detection code in Threader.buildContainer() is currently:
// Link references together in the order they appear in the References: header,
// IF they dont have a have a parent already &&
// IF it will not cause a circular reference
if ((parentRef != null)
&& (ref.parent == null)
&& (parentRef != ref)
&& !(parentRef.findChild(ref))) {
// Link ref into the parent's child list
Deep circular references where 'parentRef' is already a child of 'ref' and ref is the root container are possible.
The test should be:
if ((parentRef != null)
&& (ref.parent == null)
&& (parentRef != ref)
&& !(ref.findChild(parentRef))) {
// Link ref into the parent's child list