IllegalStateException gerada ao instalar o recurso do site de atualização compactado
-
27-10-2019 - |
Pergunta
Estou experimentando instalar um recurso do Eclipse a partir do site de atualização compactado da linha de comando. Para fazer isso, uso o seguinte comando:
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
Funciona, no entanto, pouco antes do final do processo de instalação, surge uma exceção como esta:
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.
O recurso solicitado está instalado, mas me sinto mal com essa exceção - especialmente ele não ficará bem no computador de alguém;)
Aqui encontrei algumas informações sobre esta exceção: "java.lang.IllegalStateException: Workbench ainda não foi criado
Isso geralmente ocorre quando alguém tenta executar um aplicativo Java em um pacote OSGi com java -classpath ..... Isso realmente significa que o plug-in do workbench ainda não foi iniciado e, portanto, as chamadas para getWorkbench () falham. Esta é essencialmente uma condição de corrida e pode ser resolvida expressando uma dependência explícita desse pacote ou aumentando esse pacote para um nível inicial mais alto do que a bancada. Geralmente não é visto, mas se for, é o que está acontecendo. "
Minha pergunta é: Alguém tem uma ideia de como contornar o aumento dessa exceção? (por exemplo, adicionando algumas opções de vm ao comando de instalação)
PS Estou usando o Eclipse 3.4 e não há como atualizá-lo para algo mais recente.
Solução 2
Hoje tenho lutado um pouco com esse problema e finalmente encontrei uma solução.Faltava o argumento -destination
no comando de instalação, então o correto é:
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 .
Outras dicas
Isso é causado pelo pacote org.eclipse.equinox.p2.ui está ativo em seu ambiente.Por padrão, você não inicia o Workbench, de modo que o pacote deve estar no estado Resolvido no tempo de execução OSGi.Não sei por que este pacote foi iniciado em seu ambiente, você pode verificar o arquivo configuration/org.eclipse.equinox.simpleconfigurator/bundle.info , marcar o pacote comonão inicia automaticamente.