Рейтинг@Mail.ru
загрузкаидет загрузка

Очередная ошибка: Potential deadlock

На ошибке Project is broken препятствия не закончились Следующий баг, стоящий на пути оживления утилиты, связан с Windows 7, а именно на ней не работает сановский J2ME SDK 3.0, вываливая: "Прекращена работа программы runMidlet".

Эх, а мне в 3.0 нравился эмулятор сенсорного девайса.

Окей, качаем старый WTK 2.5.2, компилируем и Oh My God!

Блин, почему отлично работающий код, после того как не трогать его некоторое время перестает компилироваться? :)

Цитата:
Warning: To avoid potential deadlock, operations that may block, such as networking, should be performed in a different thread than the commandAction() handler.

В переводе на русский: Чтобы избежать возможных зависаний (deadlock), операции которые могут привести к блокировке, такие как использование сети, должны исполняться в другом потоке, а не в обработчике commandAction().

В общем логично конечно, желательно чтобы пока информация будет подсасывать из интернета, приложение не висело в ожидании. Спасибо за науку так сказать. Но SDK 3.0 как-то менее придирчив что ли в этом плане, ну не вывел ты загрузку в отдельный поток, ну и не надо. Тебе же хуже потом будет, но приложение дай запустить, елки-палки :)

Ошибка при работе с NetBeans: Not all requested modules can be enabled

Откопал во время праздников свой старый недоделанный проект, который мастерил еще на старой винде, поставил на семерку джаву и нетбинс, открываю проект и OOOOPS!: Project is broken.

netbeans_project_broken_1.png (995 b)

Кнопочка Исправить (как-то так) выдала в ответ такое сообщение:

Цитата:
Not all requested modules can be enabled: [StandardModule:org.netbeans.modules.mobility.end2end.kit jarFile: F:\Program Files\NetBeans 6.7.1\mobility8\modulesorg-netbeans-modules-mobility-end2end-kit.jar]

То есть плагин Mobility End to End отказывался работать. Решение состоит в установке Java Web and EE компонентов.

Если у вас Java или All-in-One сборка NetBeans, то доставить пакет можно через инсталлятор, отметив нужную галочку.

netbeans_project_broken_2.png (34.27 Kb)


Если другой или дистрибутива уже нет, то тянем через сеть: Tools > Plugins > Available Plugins > Java Web and EE

Все :)

Java ME SDK 3.0. Баг при отображении GIF?

Обновил недавно NetBeans под Windows до версии 6.7.1. Вместо Wireless Toolkit 2.5.2 теперь используется Java ME SDK 3.0 (даже присутствует эмуль сенсорного девайса).

Открыл старый проект и эмулятор вывалил java.io.IOException при создании Image из InputStream (GIF изображение Яндекс Денежки, отображающей тИЦ):

Image imgCY = null;
HttpConnection conn = null;
InputStream is = null;
 
conn = (HttpConnection)Connector.open
("http://yandex.ru/cycounter?" + domain, Connector.READ_WRITE, true);
conn.setRequestMethod(HttpConnection.GET);
is = conn.openInputStream();
 
imgCY = Image.createImage(is);

Около получа чесал репу, пробовал и так и этак. Пошел в гугл. Узнал, что не все девайсы "понимают" GIF и нарыл проверку на поддержку этого формата плюс библиотеку декодера GIF'а в приемлемый для телефона формат:

String   mediaTypes[] = null;
boolean gifSupported = false;
 
mediaTypes = Manager.getSupportedContentTypes(null);
int count = mediaTypes.length;
 
for (int i = 0; i < count; i++) {
if (mediaTypes[i].equals("image/gif")){
gifSupported = true;
break;
}
}
 
/* если поддержка есть, то грузим изображение напрямую
если нет, то используем декодер */

 
if(gifSupported){
imgCY = Image.createImage(is);
}
else {
GifDecoder d = new GifDecoder(is);
imgCY = Image.createImage(d.decodeImage());
}

Эмулятор проглотил код, но несмотря на то, что в mediaTypes[] значился "image/gif", использовал декодер, хотя на реальном устройстве картинка грузилась напрямую. Подключаю, отдельно загруженный, WTK, все нормально, то есть декодер не используется. Баг или фича нового SDK?

Ooooops

Looks like Twitter's feed isn't working at the moment.