Метод сравнения ошибок нарушает свой общий контракт! при установке любого плагина Eclipse

(Я прочитал этот вопрос, но этот ответ не решает мою проблему, так что не отмечайте его как дубликат)

У меня новая установка Eclipse (Eclipse for PHP Developers / Helios Release / Build id: 20100617-1415 on Windows 7 x86). Я не могу установить какой-либо плагин или дополнение. Ни из официального репозитория плагинов, ни из предоставленных пользователем URL-адресов.

Установка даже крошечных плагинов занимает «годы» (начиная с 10-20 минут, заканчивая более часа), хотя у меня очень быстрое интернет-соединение (около 2 МБ/с), что само по себе странно. И это всегда заканчивается одним и тем же сообщением об ошибке:

An error occurred while collecting items to be installed
session context was:(profile=epp.package.php, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
Comparison method violates its general contract!
Comparison method violates its general contract!

Сообщение об ошибке всегда одно и то же, всегда упоминается epp.package.php, независимо от того, какой плагин я пытаюсь установить. Поэтому я предполагаю, что это проблема, связанная с Eclipse, а не с плагином.

Я провел некоторое исследование на StackExchange (много похожих тем, но явно вопрос программирования, связанный с ошибками в коде Java или Javascript) и в Интернете в целом. Единственное, что я нашел, напрямую связанное с Eclipse, это в этой теме на форуме говорится о какой-то известной ошибке в Eclipse. Хотя эта ошибка помечена как resolved fixed, я попытался адаптировать одно из предложенных быстрых решений запуска Eclipse с помощью:

eclipse.exe -Djava.util.Arrays.useLegacyMergeSort=true

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

Но это не принесло никакого эффекта. Опять же, установка даже небольшого плагина даже из официального репозитория происходит очень и очень неправильно, и когда индикатор выполнения достигает примерно 20% (примерно через 20-30 минут), весь процесс установки заканчивается вышеуказанной ошибкой.

У меня есть новейшие доступные стабильные версии Eclipse для PHP и JRE.

Я прочитал этот вопрос , но это не приблизило меня к решению. Я не увидел разницы при запуске Eclipse с переключателем java.util.Arrays.useLegacyMergeSort=true, и я не смог обновить ядро ​​Eclipse до последней версии, потому что этот процесс также завершился с той же ошибкой.

И это не объясняет, почему установка чего-либо занимает невероятно много времени при довольно быстром соединении?

Является ли переход на JRE 6 единственным вариантом, который у меня есть?


person trejder    schedule 14.05.2013    source источник


Ответы (1)


-Djava.util.Arrays.useLegacyMergeSort=true должен идти после переключателя -vmargs, так как это изменяет командную строку с указания аргументов запуска Eclipse на аргументы для JVM, которым будет любой -D.

Используйте это решение или выполните обновление как минимум до Indigo SR2.

person nitind    schedule 14.05.2013
comment
Я не могу использовать Indigo, так как в этой группе пакетов нет редакции PHP, но я могу использовать Helios SR2. Теперь, благодаря тебе, я вижу, что я сделал не так. Я воспользовался поиском Google на Eclipse for PHP и попал на сайт SR, в то время как я должен установить последнюю версию с сайта SR2 . Спасибо еще раз! - person trejder; 15.05.2013
comment
Не, кажется, редкая проблема. eclipse.org/forums/eclipse.tools.pdt - person nitind; 15.05.2013