Я знаю, что я должен предоставить достаточно информации для специальной ошибки. Но воспроизвести его невозможно. У меня очень многопоточная программа. У меня есть поток с бесконечным циклом while. Никакая часть программы не может прервать этот поток. Я проверяю Thread.currentThread().isInterrupted();
столько, сколько смогу. Но иногда бывает так, что поток прекращает работу с трассировки стека исключений странно, что говорит он не может преобразовать некоторый тип к Boolean в SetText mehod некоторого Lable и он указывает на следующую строку программы:Очень неясная ошибка, которая иногда прерывает мой поток в Java
JOptionPane.showMessageDialog(null, "action finished, going to the next!");
Я знаю, что я должен думать иначе! потому что у меня нет метки для установки текста, который выполняется в этом потоке. Фактически во всей программе я никогда не меняю никакого текста графического интерфейса. Я просто пишу на консоль. В чем проблема? Может ли это быть утечкой памяти в моем коде, или это может быть ошибка Java?
Вы вызываете 'showMessageDialog' напрямую или предоставляете его работнику Swing для выполнения (или используя' invokeLater'?) – templatetypedef
Непосредственно! без качелей! – Johnny
Базовое правило SO: Если вы спрашиваете об исключении, ПОСЛАТЬ ПОЛНУЮ СТОРОНУЮ СТОРОНУ и код, который выдает исключение. –