The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Изменения в Java 1.6.0-21 привели к неработоспособности Eclipse. Релиз Eclipse SDK 4.0

29.07.2010 14:50

В Java SE 6 Update 21 среди прочих исправлений была внесена незначительная на первый взгляд модификация: в поле "компания-производитель" строка 'Sun Microsystems, Inc' была заменена на 'Oracle' (в параметрах java.vendor и java.vm.vendor по прежнему фигурирует Sun). Данная правка привела к регрессивным изменениям, которые привели к нарушению совместимости со многими Java-программами, включая платформу Eclipse. Как оказалось многие программы используют данное поле для определения типа виртуальной машины Java. Если в поле указано Sun Microsystems, программы считают, что программа запущена в оригинальном Java-окружении и применяют некоторые, учитывающие особенности данного окружения, шаги.

При использовании Java 1.6.0 update 21 во всех версиях Eclipse, начиная с 3.3 и заканчивая недавно выпущенным релизом 3.6 Helios, пользователи отмечают крах приложения из-за исчерпания доступной памяти (OutOfMemoryError). В качестве временного решения разработчики рекомендуют откатиться на прошлую версию Java 1.6.0 update 20 (в 21 обновлении не было исправлений безопасности) или указать в файле eclipse.ini после строки "-vmargs" опцию "-XX:MaxPermSize=256m". Сообщается, что по умолчанию проблема проявляется только в Windows-сборке Eclipse, версии для Solaris и Linux работают корректно (популярные Linux-дистрибутивы пока не перешли на обновление Java 1.6.0 update 21, поэтому возможно для данной платформы проявление проблем в будущем). Проблема усугубляется еще и тем, что 21 обновление Java распространяется для пользователей Windows через службу автоматической установки обновлений, не требующей подтверждения от пользователя - некоторые Java-приложения просто перестают работать в один прекрасный момент. В настоящее время компания Oracle выпустила обновленную b07-сборку 21 обновления Java 6, в которой поле "компания-производитель" возвращено в прежний вид.

Кроме того, можно отметить о выходе версии Eclipse SDK 4.0, являющейся скорее платформой нового поколения, чем продолжением развития ветки Eclipse 3.x. Eclipse SDK 4.0 позиционируется как как версия для начала адаптации разработчиками своих продуктов на новые технологии платформы. Тем не менее сообщается, что изменения в таких подсистемах, как Eclipse Java Development Tools (JDT) и Eclipse Web Tools, минимальны и их пользователям пока нет смысла переходить на Eclipse 4.0. В настоящий момент Eclipse 4.0 рекомендуется для разработчиков плагинов и RCP-приложений (Rich Client Platform). API платформы полностью обратно совместимо с Eclipse 3.x, что позволяет упростить процесс миграции на новую версию.

Из ключевых улучшений Eclipse 4.0 отмечается:

  • Моделеориентированный фреймворк для создания виджетов для пользовательского интерфейса приложений. Новый фреймворк позволяет значительно увеличить гибкость создания сложных пользовательских интерфейсов;
  • Основанная на каскадных таблицах стилей (CSS) декларативная модель формирования внешнего облика интерфейса приложений. Для изменения внешнего вида, достаточно поменять CSS-файл, как это делается для web-приложений. Для формирования интерфейса с использованием декларативного подхода подготовлен специальный инструмент XWT;
  • Поддержка сервис-ориентированной модели программирования, позволяет упростить задействование в программах сервисов, предоставляемых платформой Eclipse.


  1. Главная ссылка к новости (http://it.slashdot.org/story/1...)
  2. OpenNews: Обновление Java SE 6 Update 21
  3. OpenNews: Вышел релиз Eclipse 3.6 (Helios)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/27465-java
Ключевые слова: java, bug, oracle
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (48) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 15:05, 29/07/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Вот и в Оракл появился свой Денис Попов...
    Тщеславие страшная штука.
     
     
  • 2.11, Knuckles (ok), 15:35, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +3 +/
    При чем тут Денис Попов? Виноваты криворукие разработчики Java-софта. Не надо было завязываться на какое-то очевидно нерепрезентативное свойство окружения.
     

  • 1.3, Zenitur (?), 15:06, 29/07/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Не вижу повода для новости. В программах часто находятся баги. Ладно когда в KDE 3 и 4 нашли один и тот же баг и была новость только из-за этого. А у Java просто выйдет фикс.
     
     
  • 2.9, anonymous (??), 15:30, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    а это вовсе не баг java, это показатель того, как не нужно писать программы на java.
     
     
  • 3.30, aim (ok), 16:47, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    к сожалению это показатель того как хорошо сборщики opensource java подумали о пользователях и программистах.

    очень долго (да до сих пор по-моему) opensource java говорит о себе что она 1.6.0 в то время когда она уже 1.6.20, например.

     
     
  • 4.31, aim (ok), 16:49, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    всмысле 1.6.0 вместо 1.6.0u20
     
  • 3.33, аноним (?), 16:57, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > это показатель того, что не нужно писать программы на java.

    fixed

     
  • 2.13, Аноним (-), 15:35, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Не вижу повода для новости. В программах часто находятся баги. Ладно когда
    >в KDE 3 и 4 нашли один и тот же баг
    >и была новость только из-за этого. А у Java просто выйдет
    >фикс.

    Не, новость полезная. Она лишний раз напоминает, что не следует расслабляться, а именно разработчикам не использовать сомнительные хаки и анализировать возможные последствия даже при внесении незначительных изменений.

     
     
  • 3.14, Zenitur (?), 15:37, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Теперь понял! Спасибо. Новость дополнили...
     

  • 1.8, Tav (ok), 15:24, 29/07/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Исправили уже, почти сразу. Эта новость неактуальна даже на момент публикации.

    > Как оказалось многие программы используют данное поле для определения типа виртуальной машины Java.

    Спорное утверждение. Подобные фокусы — это все-таки исключение, а не правило, и встречаются не так уж часто. И если уж делать подобные вещи, нужно делать надежно, т. ч. разработчики Eclipse сами виноваты.

     
     
  • 2.59, qpq (ok), 02:43, 30/07/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    можно даже сказать, что разработчики Eclipse накосячили, как и тестировали приложение?

    и лишь благодаря счастливой случайности (Oracle купил Sun), этот древнейший баг всплыл и заставил задуматься весь мир: чем же там думают разработчики из IBM?

    сарказм офф

    и кстати да, новость старая (Jul 21, http://www.infoq.com/news/2010/07/eclipse-java-6u21)

     

  • 1.12, Аноним (-), 15:35, 29/07/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Интересно, а зачем на Windows проверять что Java от Sun? Как будто есть альтернативы (Microsoft java давно уже нет)
     
     
  • 2.15, Zenitur (?), 15:39, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Интересно, а зачем на Windows проверять что Java от Sun? Как будто
    >есть альтернативы (Microsoft java давно уже нет)

    Не знаю, зачем и в Linux проверять. GCJ наверное больше не пользуются после появления OpenJDK, который от закрытого отличается лишь одним процентом закрытого кода. Разве что на кластерах суперкомпьютеров может быть есть варианты

     
  • 2.20, Роман (??), 15:49, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    IBM JDK и BEA/ORacle JRockit неканоничны?
     

  • 1.16, Защитничек (?), 15:40, 29/07/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Как же некоторые умеют писать и раздувать из ничего!
    Что значит "многие программы используют данное поле"? Ну вот что за бред?! С каких это пор Eclipse for Windows является всем?!

    PS У меня Eclipse 3.6 под Windows ни разу еще не упала!

     
     
  • 2.27, mine (?), 16:26, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Eclipse - единственная нужная программа на java. Собственно сама java нужна только чтобы писать eclipse.
     
     
  • 3.39, DeadMustdie (??), 17:53, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Рекурсивно: Java нужна, чтобы писать Eclipse, который в свою очередь написан на Java в среде Eclipse.
     

  • 1.17, armsargis (?), 15:44, 29/07/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    The change was to replace COMPANY_NAME=Sun Microsystems, Inc. to COMPANY_NAME=Oracle Corporation in the way that the dll was generated. Unfortunately, Eclipse uses the name on the DLL to know whether it's safe to append the non-standard -XX:MaxPermSize or not. Since some JVMs will fail to start when the flag is present but not supported, rather than putting the -XX:MaxPermSize in Eclipse's startup file (eclipse.ini), a new argument, --launcher.XXMaxPermSize 256m is permitted, and if the launcher executable on Windows detects that it is a Sun VM, it appends the -XX:MaxPermSize=256m automatically.

    Its not a problem of Java, its problem how is done Eclipse under windows

     
  • 1.24, anonim (?), 16:06, 29/07/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    а мне вот интересно, кто-нибудь видел java-программы? ну кроме самого затмения...
     
     
  • 2.28, Аноним (-), 16:28, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Netbeans и JAlbum сразу приходят на ум
     
  • 2.29, Anonimus (??), 16:43, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вагон и маленькая тележка:
    SQL Power Architect, Oracle SQL Developer, ArgoUML, Cademia, Sweet Home, JEdit, mucommander и т.д.
     
     
  • 3.36, аноним (?), 17:30, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • –8 +/
    >SQL Power Architect, Oracle SQL Developer, ArgoUML, Cademia, Sweet Home, JEdit, mucommander

    Это не вагон а горстка. Никто из моих коллег про эти поделия ны слышал.

     
     
  • 4.37, анонимус (??), 17:46, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Это не вагон а горстка. Никто из моих коллег про эти поделия ны слышал.

    ну и зря

     
  • 4.47, northbear (??), 20:09, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Коллеги твои, небось, стоматологи?
     
  • 2.32, Аноним (-), 16:55, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Zend Studio,
    oXygen XML.
     
  • 2.38, syhpoon (ok), 17:50, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Есть ещё крайне полезная софтина - xmind, собственно единственное чем пользуюсь из java world.
     
  • 2.42, Satarsa (??), 18:53, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Jabref
     
  • 2.44, Zenitur (?), 19:29, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Каждый день я пользуюсь Azureus, он же Vuze. Плюс небольшие программки.
     
     
  • 3.56, User294 (ok), 02:26, 30/07/2010 [^] [^^] [^^^] [ответить]  
  • –5 +/
    А потом бухтишь на форуме что кеды 4 тормозят и ресурсы жрут. Двойные стандарты - сосут. Или программы на яве не тормозят а невъ....й рантайм (суммарный вес сжатых пакетов под сто метров) висящий в памяти ради аж ОДНОЙ ПРОГРАММЫ - ресурсы как бы не жрет? Может быть, блаародному дону уже определиться? А то двойные стандарты как-то не рулят ;)
     
     
  • 4.62, DeadMustdie (??), 09:49, 30/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Двойные стандарты - сосут. Или программы на яве не тормозят а
    >невъ....й рантайм (суммарный вес сжатых пакетов под сто метров) висящий в
    >памяти ради аж ОДНОЙ ПРОГРАММЫ - ресурсы как бы не жрет?

    Runtime не грузится целиком. Классы и двоичные библиотеки подгружаются
    строго по мере необходимости. Так что размер на диске мало на что влияет.

    Другое дело, что сборщику мусора для комфортного существования нужен простор.
    То бишь изрядный объём "манёвренной" памяти, которая формально не используется
    никакими структурами данных, но, увы, занята конкретной программой.

    Так что по потреблению памяти Java и .NET не могут не быть впереди планеты всей :)

     
  • 4.65, iZEN (ok), 18:34, 30/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >А потом бухтишь на форуме что кеды 4 тормозят и ресурсы жрут.
    >Двойные стандарты - сосут. Или программы на яве не тормозят а
    >невъ....й рантайм (суммарный вес сжатых пакетов под сто метров) висящий в
    >памяти ради аж ОДНОЙ ПРОГРАММЫ - ресурсы как бы не жрет?
    >Может быть, блаародному дону уже определиться? А то двойные стандарты как-то
    >не рулят ;)

    Firefox 3.6.8 ~ 91,1МБ
    Thunderbird 3.0.6 ~ 99,8МБ
    RSSOwl (с загруженными лентами новостей) ~ 93МБ.
    Eclipse 3.5.2 SDK (без открытых проектов) ~ 205МБ,
    где eclipse.ini:
    org.eclipse.platform
    --launcher.XXMaxPermSize
    256m
    -vmargs
    -Xms256m
    -Xmx768m
    Десктоп с открытыми приложениями: Xfce4 4.6.2, GNOME System Monitor, Gedit, Thunar, Terminal, плюс куча мелких демонов — каждое нативное приложение занимает приблизительно от 1МБ до 40МБ (Gedit).

    Память занята всего на 27,4% (1ГБ) из 3,7ГБ (256МБ отведено под видеопамять интегрированного видео и поэтому здесь такое число).

    Вопросы?

    P.S.
    Какие ресурсы тебе важны, объясни ты мне наконец. Мы давно видим, что Java не самая ресурсоёмкая, а память на десктопе давно уже не ресурс. Основные ресурсожручие программы это всякие интерпретируемые Perl- и Python-выбросы гениальности, которые до процессора охочи аж оторопь иногда берёт (Exaile).

     
  • 2.45, аноним (?), 19:46, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    OpenStreetMap'овский josm, увы.
     
  • 2.46, F (?), 20:08, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ищите на серверах.
     
  • 2.48, casm (ok), 21:52, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Openfire - jabber сервер написан на java
     
  • 2.51, iZEN (ok), 00:01, 30/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    GLIPSGraffiti
    javadjvu
    Umlet
    JDraw
    PDFRenderer
    toonel
    executequery
    JPC
    makagiga
    Gantt Project

     
  • 2.54, qpq (ok), 01:55, 30/07/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Любые клиент-сревнерные приложения, web-приложения, web-сервисы, что используют в качестве серверной платрформы Tomcat, JBoss, IBM Websphere, WebLogic, Glassfish и т.д. и т.п. являются в той или иной степени Java-программами, как Вы выразились это назвать.

    Вообще, в настоящий момент реальной альтернативы, реального конкурента в области разработки Middleware-, SOA-, AS- приложений у Java нет. Им теоретически могла бы стать .NET платформа, но (к сожалению или скорее к счастью) Windows платформа не доминирует среди серверов и .NET платформу практически никто не выбирает в качестве крупного сервера приложений. Отсутсвие кросс-платформенности - не единственный недостаток .NET по сравнению с Java/JEE, но во многих случаях он является решающим фактором.

    А из Desktop-приложений на Java достойны внимания лишь поделки на базе Eclipse (ну или чистом SWT, хотя я таких почти не видел), ввиду очевидных тормозов Swing-библиотеки.

    С другой стороны если вам надо набросать маленькую кросс-платформенную утилитку особо не заморачиваясь ее качеством и дизайном, скажем для конфигурации вашей СУБД, которую пользователь будет запускаеть раз в месяц или один раз на инсталяцию, то почему бы не сделать это на Java.. (так, видимо, в свое время родилась графическая инсталяшка для Oracle - лентяи криволапые)

     
  • 2.66, murmobl (?), 22:05, 01/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Sybase SQL Anywhere с его Central'ом для управления базами
     

  • 1.34, Асушник (?), 17:00, 29/07/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Если Java такой переносимый платформонезависимый язык, как все время декларируется, то какие такие "некоторые, учитывающие особенности данного окружения" шаги надо предпринимать и как может существовать "оригинальное" и "неоригинальное" окружение? Насколько помнится, вся эта история с использованием ВМ затевалась в том числе и с тезисом, что код без изменений будет работать везде. А иначе зачем все эти жертвы типа тормозов?
     
     
  • 2.40, umbr (ok), 18:01, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы неправильно их поняли. Байткод будет работать везде, где есть JVM под которую он написан ;) Проблема совместимости на уровне JVM есть уже давно, но, похоже, мало кого волнует.
     
  • 2.50, anonymous (??), 22:26, 29/07/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы идиот или читать не умеете? Если разработчики софта сделали дурацкую привязку к строке к которой привязываться вовсе не надо это проблема java?
     
  • 2.57, User294 (ok), 02:31, 30/07/2010 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >может существовать "оригинальное" и "неоригинальное" окружение?

    Вот тут то мы и наблюдаем отличие теории от практики. В теории - офигенная кроссплатформенность, возможность генерации кода под конкретный проц и прочая. На практике - такие вот приколы, да и просто сам рантайм портирован далеко не на все платформы и ресурсы жрет адски а "оптимальный" код почему-то в разы сливает сям/сям++ при прочих равных, невзирая на всю круть JIT-генерации кода.

     
     
  • 3.63, DeadMustdie (??), 09:57, 30/07/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >На практике - такие вот приколы, да и просто сам рантайм
    >портирован далеко не на все платформы и ресурсы жрет адски а
    >"оптимальный" код почему-то в разы сливает сям/сям++ при прочих равных, невзирая
    >на всю круть JIT-генерации кода.

    Насчёт "слива сям/сям++" я бы не сказал. Тесты в студию.
    Те тесты, которые я делал сам и о которых читал, показывают картину вполне предсказуемую:
      - старт и "разогрев" Java-программы занимает определённое время
      - после этого времени, выйдя на "стабильный" режим, Java-программа исполняется
    фактически со скоростью нативного кода данной платформы
      - при проведении тестов на работу с памятью в патологических случаях программа на
    Java может даже переплюнуть программу на C++, так как сборщик мусора может не срабатывать
    при выполнении программы, а завершение её - специальный случай, когда на сборке мусора
    можно крупно сэкономить ;)

     
     
  • 4.64, Аноним (-), 11:36, 30/07/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Забей. User294 никогда не отвечает на неудобные для себя вопросы.
    Его задача сделать вброс - а потом долго рассказывать какой он крутой и что это на его n900 не работает :)
     

  • 1.43, zuborg (?), 19:26, 29/07/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Java(tm) - write once, debug everywhere
     
  • 1.49, Аноним (-), 21:56, 29/07/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Менеджмент Оракла облажался по самые уши. Тривиально не смог организовать и взаимодействие разработчиков и элементарное тестирование. Ещё пару таких фортелей и биржи будут смотреть на  postgresql по другому.
     
     
  • 2.53, qpq (ok), 01:34, 30/07/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы фантазер или мечтатель?
     

  • 1.60, upyx (ok), 05:33, 30/07/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Проблема усугубляется еще и тем, что 21 обновление Java распространяется для пользователей Windows через службу автоматической установки обновлений, не требующей подтверждения от пользователя - некоторые Java-приложения просто перестают работать в один прекрасный момент.

    Вот оно! Помнится спор был на тему как хороши автообновления... Что-то рухнуло, а ты даже не догадываешься почему. Даже в бубунте такого нет!

     
  • 1.61, AlexAT (ok), 09:33, 30/07/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Java - это ультрасовместимая и портабельная платформа. Именно поэтому жабокодерам приходится проверять тип среды хаками.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру