IllegalStateException gerada ao instalar o recurso do site de atualização compactado

StackOverflow https://stackoverflow.com/questions/7835418

  •  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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top