Привет коллеги. Спрашивал на java-форумах - ответа не получил. Подскажите, куда рыть ? Ситуация: 1. ОС — Kubuntu 8.04 (пробовал Ubuntu 8.04 и OpenSUSE 11.0 и Fedora 8, Tedora 9) 2. Рабочий стол — KDE 3.5.9 (пробовал так же Gnome) 3. JVM — Sun 1.6.0 u6 (пробовал так же openjdk) 4. Eclipe 3.4 (релиз). (встречалось и на 3.4RC-N) 5. Проект — десктопное приложение (Swing+Postgresql).
6. Ставлю точку прерывания в моём порождении от JComboBox.PopupMenuListener.popupMenuWillBecomeInvisible(PopupMenuEvent e), запускаю дебагинг и при достижении вышеупомянутой точки графический стол "замирает" (могу только лишь мышкой двигать и лицезреть перемещающийся курсор). Ухожу в терминальную сессию и убиваю java-процесс соответствующий моей отлаживаемой программе. Возвращаюсь на рабочий стол — всё оживает. Если же точки прерывания ставлю в иных местах — всё дебагится и работает.
Пробовал изменить логику приложения и реализовывал JComboBox.addItemListener(new ItemListener(){@Override public void itemStateChanged(ItemEvent e) {...} });
И опять при дебагинге брейк-поинт поставленный в первом же операторе метода itemStateChanged подвешивает не только Eclipse, но и все иные GUI-приложения. Вернее сказать - весь рабочий стол. Такое впечатление, что где-то рождается некое "невидимое" модальное окно и оно ждёт от меня ответа, блокируя при этом все остальные приложения и даже "панель задач".
И чё делать ?
Готов экспериментировать, только вот идей более плодотворных не осталось.