Если вы используете современную среду IDE, например, затмение, вы можете запустить приложение в режиме отладки и установить точку останова на любом исключении. С эффектом: приложение будет останавливаться каждый раз, когда генерируется исключение (во всей JVM), и вы получаете трассировку стека.
Это делает его довольно легко определить номер вызывающего абонента (и фактический поток, если это вопрос параллелизм)
playn.java.JavaGroupLayer.paint(JavaGroupLayer.java:96)
Это плохой парень. Это метод paint
ваш класс JavaGroupLayer
. Вероятно, он имеет цикл for, который выполняет итерацию через список массивов, и в какой-то момент он обнаруживает, что список был изменен.
Вы используете потоки в своем приложении качания? В этом случае дважды проверьте, не изменяют ли макет.
Stacktrace? Может быть? –
У вас нет stacktrace? – talnicolas
Было бы более полезно, если бы вы разместили свой код и трассировку стека исключений. Это почти наверняка «ConcurrentModificationException», вызванное модификацией коллекции во время ее повторения. –