Вот пример, который вызовет ту же ошибку, которая может помочь:
import java.util.*;
public class Test
{
public static void main(String[] args)
{
List<Object> list1 = new ArrayList<Object>();
List<Object> list2 = new ArrayList<Object>();
list1.add(list2);
list2.add(list1);
String text = list1.toString();
System.out.println(text);
}
}
Обратите внимание, что просто с помощью:
List<Object> list = new ArrayList<Object>();
list.add(list);
String text = list.toString();
... не не выдало ошибку. Он достаточно умен, чтобы заметить, является ли коллекция немедленно внутри себя, но не вложенная внутри себя.
Конечно, вы не можете использовать одну и ту же коллекцию, так что это может изменить то, что происходит, но, надеюсь, это дало вам отправную точку.