IllegalStateException возникает при установке функции с заархивированного сайта обновления - PullRequest
0 голосов
/ 20 октября 2011

Я экспериментирую с установкой функции Eclipse с zip-сайта обновлений из командной строки. Для этого я использую следующую команду:

eclipsec.exe -nosplash -application org.eclipse.equinox.p2.director -repository jar:file:///d:\Eclipse_Workspaces\update-site-dummy_workspace\com.experiment.updatesite\experiment_update_site_1.0.0.zip!/ -installIU com.experiment.feature.one.feature.group -profile PlatformProfile

Это работает, однако незадолго до окончания процесса установки возникает следующее исключение:

Installing com.experiment.feature.one.feature.group 1.0.0.
java.lang.IllegalStateException: Workbench has not been created yet.
        at org.eclipse.ui.PlatformUI.getWorkbench(PlatformUI.java:92)
        at org.eclipse.equinox.internal.provisional.p2.ui.ProvisioningOperationRunner.requestRestart(ProvisioningOperationRunner.java:171)
        at org.eclipse.equinox.internal.p2.ui.ProvUIActivator$1.notify(ProvUIActivator.java:117)
        at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.dispatchEvent(ProvisioningEventBus.java:108)
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
        at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:149)
        at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.publishEvent(ProvisioningEventBus.java:85)
        at org.eclipse.equinox.internal.p2.engine.SimpleProfileRegistry.broadcastChangeEvent(SimpleProfileRegistry.java:350)
        ....
Operation completed in 1277 ms.

Запрошенная функция установлена, но я чувствую себя плохо из-за этого исключения - особенно оно не будет хорошо смотреться на чьем-либо компьютере;)

Здесь Я нашел некоторую информацию об этом исключении: "java.lang.IllegalStateException: рабочая среда еще не была создана

Обычно это происходит, когда кто-то пытается запустить приложение Java для пакета OSGi с помощью java -classpath ..... Это действительно означает, что плагин Workbench еще не запущен, и поэтому вызовы getWorkbench () не выполняются. По сути, это условие гонки, и его можно решить, либо выразив явную зависимость от этого пакета, либо подняв этот пакет до более высокого начального уровня, чем в рабочей среде. Как правило, не видел, но если это так, то это то, что происходит. «

Мой вопрос: У кого-нибудь есть идеи, как обойти это исключение? (Например, добавив некоторые параметры vm в команду установки)

PS Я использую Eclipse 3.4, и нет способа обновить его до чего-то более нового.

Ответы [ 2 ]

1 голос
/ 21 октября 2011

Это вызвано тем, что org.eclipse.equinox.p2.ui активен в вашей среде. По умолчанию вы не запускаете Workbench, поэтому пакет должен находиться в состоянии Resolved во время выполнения OSGi. Я не уверен, почему этот пакет запускается в вашей среде, вы можете проверить файл configuration / org.eclipse.equinox.simpleconfigurator / bundle.info , пометить пакет как не автоматический начать.

0 голосов
/ 24 октября 2011

Сегодня я немного боролся с этой проблемой и, наконец, нашел решение. В команде установки отсутствовал аргумент -destination, поэтому правильный:

eclipsec.exe -nosplash -application org.eclipse.equinox.p2.director -repository jar:file:///d:\Eclipse_Workspaces\update-site-dummy_workspace\com.experiment.updatesite\experiment_update_site_1.0.0.zip!/ -installIU com.experiment.feature.one.feature.group -profile PlatformProfile -destination .
...