Апплет не работает на JRE 6u25

У меня есть апплет, который подключается к устройству и получает свои параметры через протокол SNMP. он отлично работает на JRE 6u20, но после обновления JRE до 6u25 он не работает должным образом.

На 6u20 получение параметров устройства занимает несколько секунд, но на 6u25 требуется гораздо больше времени, и в итоге большинство параметров не восстанавливаются.

Существует SwingWorker для чтения каждого параметра, и я использую этот Java SNMP Package.

В чем разница между этими версиями JRE? как узнать в чем проблема?


person Mehdi    schedule 14.05.2011    source источник
comment
@Andrew: Спасибо, я отредактировал вопрос.   -  person Mehdi    schedule 14.05.2011
comment
Возможно, очевидный вопрос, но проверяли ли вы базу данных ошибок?   -  person Andrew Thompson    schedule 14.05.2011
comment
@Andrew: я пробовал версии 6u24 и 6u23, и они не работают как 6u25, нет, я не проверял базу данных ошибок. Я проверю это сейчас.   -  person Mehdi    schedule 14.05.2011
comment
Вы должны опубликовать свое обновление как ответ, а затем пометить его как принятое.   -  person Robert Munteanu    schedule 16.05.2011


Ответы (1)


Наконец я понял, в чем была проблема. Java SNMP Package GetRequest не является потокобезопасным. в JRE 6u20 проблем не было, потому что пул потоков SwingWorker по умолчанию в JRE 6u20 имеет только один рабочий поток, но в JRE 6u25 количество рабочих потоков равно 10.

SwingWorker.MAX_WORKER_THREADS = 10;

Добавление ключевого слова "synchronized " к методу запроса SNMP get решает проблему.

synchronized public SNMPVarBindList getMIBEntry(String itemID)
person Mehdi    schedule 16.05.2011