Приложение зависает, вызывая конструктор DefaultCellEditor - PullRequest
0 голосов
/ 27 мая 2009

У меня есть контроль над небольшой частью приложения, созданного на Eclipse, и у меня возникла проблема с созданием DefaultCellEditor. Код на самом деле использует подкласс DefaultCellEditor, но я могу воссоздать проблему с помощью DefaultCellEditor, так что об этом я и собираюсь спросить, надеясь, что это решит проблему с реальным классом. Я пробовал это с обоими JDK 1.5 и 1.6, и получаю одинаковое поведение в обоих.

Проблема возникает, когда вызывается конструктор DefaultCellEditor:

log.debug("Trying construction.");
currentCellEditor = new DefaultCellEditor(new JTextField());
log.debug("Constructed OK.");

Когда этот код выполняется, возможно, в 20% случаев, приложение зависает, а процессор привязан к 100% - похоже, что где-то там бесконечный цикл, но я не знаю, где. Первая строка журнала печатается, а вторая нет.

Я попытался сделать копию класса DefaultCellEditor и вставить туда операторы System.out.println, чтобы посмотреть, смогу ли я выяснить, где возникает проблема; в то время, когда код выполняется правильно, все мои операторы отладки выводятся на печать, но когда он не выполняется правильно, ни один из операторов не выводится, почти как зависание происходит до вызова конструктора. Есть идеи, что может случиться?

1 Ответ

0 голосов
/ 27 мая 2009

Оба комментария к вопросу были полезны. Я смог использовать дамп потока и выяснить, что вызвало цикл (в итоге я использовал StackTrace ). Моя другая проблема заключается в том, что, хотя я раньше был на EDT, в тот момент, когда этот код фактически работает, он больше не на EDT - так что теперь я должен отследить это, но некоторые ранние тесты показывают, что включение этого в EDT может решить проблему. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...