| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Апплеты > апплет и потоки |
| Автор: Keyo 10.4.2008, 22:07 | ||
| Проблема следующая. Имеется главный класс апплета. Имеется класс расширяющий Thread далее он запускается в отдельном потоке и переодически (10 секунд) получает данные с сервера схематически это выглядит примерно так
Далее пользователь может менять значения полей в главном классе, от которых зависит то, какая информация придет. И вот после того как он меняет значения полей, в основном потоке вызывается метод getData(), данные получаются, все нормально, но... На некоторых компьютерах дочерний поток просто перестает существовать, никаких исключений, ничего, все глухо. При чем раньше все работало нормально, когда DELAY был равен 30 секундам... В чем проблема не понятно... Как найти ошибку, не понятно... |
| Автор: Keyo 10.4.2008, 23:12 |
| кстати да, InterruptedException не происходит, равно как и другие Exception, поток тихо умирает. При чем даже в списке потоков в консоли JAVA его тоже нет :-( нид хелп. И происходит это выборочно, при чем до вызова getData из основного потока, все у всех работает нормально, а далее у некоторых поток пропадает стабильно, а у некоторых остается... (( |
| Автор: LSD 11.4.2008, 12:40 | ||
На кой черт вообще эта конструкция нужна?
Она же не несет ни какого смысла, т.к. текущий поток по определению не может быть в состоянии ожидания. 1. Как ты определяешь, что нет InterruptedException, у тебя там стоит запись в лог? 2. У тебя там явно есть работа с сетью, которая может кидать IOException, там есть обработка ошибок и запись их в лог? |
| Автор: Keyo 11.4.2008, 13:25 |
| LSD, может, что и происходит, например при перезагрузке страницы... хотя видимо обрабатываю я его (исключение) неправильно, но сути это в принципе не меняет 1. У меня там стоит перехват исключения с выводом в консоль 2. есть все возможные обработки исключений |
| Автор: Keyo 11.4.2008, 13:48 | ||
кстати, правда выкидываются они в стэк... но сути не меняет, по скольку стэк чист... как попа младенца
Добавлено через 2 минуты и 3 секунды а по первому, я там ставил обработку исключения, оно не вызывалось в процессе работы... только при перезагрузке страницы, когда дочерний поток в "спячке" |
| Автор: LSD 11.4.2008, 14:00 | ||
| Без полного кода сложно что-то сказать. Если бы в run() вылетал непойманный Exception, то это было бы видно в консоли. А так тут похоже нормальное завершение потока по выходу из run(). P.S. Здесь:
может быть выкинут необработанный IOException. |
| Автор: Keyo 11.4.2008, 14:06 |
| LSD, но он ведь все равно в консоль идет ((( а в консоли ничего нет Добавлено через 36 секунд я понимаю если бы у меня стоял пустой обработчик исключений где-то, так ведь нет такого ( |
| Автор: Keyo 11.4.2008, 15:21 |
| вобщем сделал так... написал еще один класс наследующий Thread, он периодически проверяет инстанс DataManagera и если тот ! DataManager.getInstance().isAlive тогда DataManager.createNewInstance что по моему есть криво... так что если есть предложения... готов выслушать. Спасибо. |
| Автор: LSD 11.4.2008, 16:21 |
| Пока я вижу только пустой (без вывода в консоль) catch (final InterruptedException ex). И честно говлря надоедает гадать, что же там все таки не так, не видя кода. |
| Автор: Keyo 11.4.2008, 17:58 | ||
LSD, пожалуйста, вот код
|
| Автор: LSD 12.4.2008, 11:32 |
| По коду не видно мест, где могла бы быть проблема. Попробуй запустить аплет под отладчиком, и посмотреть, что там происходит. Как отлаживать аплеты написано http://forum.vingrad.ru/forum/topic-105606.html. |
| Автор: Keyo 12.4.2008, 16:35 |
| LSD, к сожалению у меня на компе все работает без сбоев (( поэтому не уверен что под отладчиком выявится проблема, кроме того управление апплетом идет из вне, из javascript, может быть в этом проблема, из за этого трудно отлаживать, но опять таки все исключения ловятся без исключения ( Добавлено через 54 секунды кроме того на всех компах офиса апплет работает, не работает выборочно и непонятно как... вот например у одного человека под шестым осликом с самым последним JRE... не работает... |
| Автор: Keyo 12.4.2008, 18:44 |
| Такой вопрос, дабы не плодить новую тему, как отформатировать Long, так чтобы скажем если число больше чем 10 в 9 степени, то выводилось что-то типа 10.0Е8 |
| Автор: LSD 12.4.2008, 22:39 |
| Нет уж, один топик - один вопрос. |
| Автор: Keyo 13.4.2008, 18:39 |