[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[p2-dev] Software Updates - Revert Software Configuration p2 problems in RCP app
|
Hi
I need to fix this issue with our p2-enabled RCP app.
If I open the "Revert Configuration" dialog
from the "Software Updates" dialog, I invariably get errors like:
"The configuration snapshot is no longer valid.
org.eclipse.equinox.internal.p2.core.ProvisionException"
Our RCP application is based on 3.4.2 and is built in two steps:
1) headless build using a product configuration file (see ant snippet below)
2) headless run of the org.eclipse.equinox.p2.director.app.application
to produce the p2-enabled RCP (see ant snippet below)
We zip up and distribute 2), which is then unzipped and ran on machines
where the repository built in step 1) is no longer there.
Running the app built in step 2) - if we open the "Revert Configuration"
dialog from the "Software Updates" dialog, as said we get
"The configuration snapshot is no longer valid.
org.eclipse.equinox.internal.p2.core.ProvisionException"
and the details button shows :
"The configuration snapshot is no longer valid.
Problems resolving provisioning plan.
No solution found because the problem in /tmp/p2EncodingNNNNNNNNNNNNNNNNNN.opb
is unsatisfiable."
Even on the very first run of the application, the 'Revert
Software Configuration" dialog shows 2 'Previous Configuration' entries:
1st, one with the timestamp of 'now' - selecting this causes the error
above;
2nd, one with the timestamp of when the app was built;
selecting this causes no error, the finish button is enabled ... and if
clicked, then the app will not restart. This is unrecoverable and one needs
to delete and reinstall (unzip) the whole app.
I may open a bug - but I first need to know if there is nothing wrong with
how we build the RCP application.
I had this problem for months - but now it's back to haunt me to get fixed.
I posted this on the rcp newsgroups too, but p2-dev may
be more appropriate.
thanks
Edoardo
attached screenshots & stack trace.
appendix - ANT snippets :
1) headless build using the product configuration file (see ant snippet
below)
<java jar="${launcher.jar}"
jvm="${javaexec}" fork="true" failonerror="true">
<jvmarg
value="-Xms256m" />
<jvmarg
value="-Xmx768m" />
<arg
line="-clean" />
<arg
line="-application org.eclipse.ant.core.antRunner" />
<arg
line="-buildfile ${productBuild.xml}" />
<arg
line="-Dbuilder=@{build}" />
<arg
value="-Dproduct=@{product}" />
<arg
value="-Dconfigs=${configs}" />
<arg
line="-DbuildDirectory=@{build}" />
<arg
line="-DbaseLocation=@{eclipse}" />
<arg
line="-DbuildType=${buildType}" />
<arg
line="-DbuildId=${buildId}" />
<arg
line="-DarchivePrefix=${buildId}" />
<arg
line="-DforceContextQualifier=${qualifier}" />
<arg
line="-DjavacDebugInfo=true" />
<arg
line="-DjavacVerbose=false" />
<arg
line="-DjavacSource='@{javacspec}'" />
<arg
line="-DjavacTarget='@{javacspec}'" />
<arg
line="-Dgenerate.p2.metadata=true" />
<arg
line="-Dp2.metadata.repo=file:@{repository}"
/>
<arg
line="-Dp2.artifact.repo=file:@{repository}"
/>
<arg
value="-Dp2.metadata.repo.name=@{repositoryName}" />
<arg
value="-Dp2.artifact.repo.name=@{repositoryName}" />
<arg
line="-Dp2.flavor=tooling" />
<arg
line="-Dp2.publish.artifacts=true" />
</java>
2) headless run of the org.eclipse.equinox.p2.director.app.application
to produce the p2-enabled RCP (see ant snippet below)
<java jar="${launcher.jar}" fork="true" jvm="${javaexec}"
failonerror="true">
<jvmarg
value="-Xms256m" />
<jvmarg
value="-Xmx768m" />
<jvmarg
value="-Declipse.p2.data.area=@{build}/@{product}/p2" />
<arg
line="-clean" />
<arg
line="-application org.eclipse.equinox.p2.director.app.application"
/>
<arg
line="-consoleLog" />
<arg
line="-metadataRepository file:@{repository}"
/>
<arg
line="-artifactRepository file:@{repository}"
/>
<arg
line="-installIU @{product}" />
<arg
line="-profile @{product}" />
<arg
line="-destination @{build}/@{product}" />
<arg
line="-bundlepool @{build}/@{product}" />
<arg
line="-p2.os @{os}" />
<arg
line="-p2.ws @{ws}" />
<arg
line="-p2.arch @{arch}" />
<arg
value="-roaming" />
<arg
line="-profileProperties org.eclipse.update.install.features=true"
/>
</java>
--------------------------------------------------
regards,
Edoardo Comar
IBM United Kingdom Ltd.
ecomar@xxxxxxxxxx
Tel +44 (0)1962 81 5576 (external) 245576 (internal)
www.ibm.com/cics/explorer
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
Attachment:
screenshot-01.jpg
Description: JPEG image
Attachment:
screenshot-02.jpg
Description: JPEG image
!ENTRY org.eclipse.equinox.p2.ui 4 0 2009-04-20 16:02:23.389
!MESSAGE The configuration snapshot is no longer valid.
!STACK 1
org.eclipse.equinox.internal.provisional.p2.core.ProvisionException: Problems resolving provisioning plan.
at org.eclipse.equinox.internal.p2.rollback.FormerState$FormerStateProfile.<init>(FormerState.java:297)
at org.eclipse.equinox.internal.p2.rollback.FormerState.IUToProfile(FormerState.java:144)
at org.eclipse.equinox.internal.provisional.p2.ui.model.RollbackProfileElement.getProfileSnapshot(RollbackProfileElement.java:117)
at org.eclipse.equinox.internal.p2.ui.dialogs.RevertProfileWizardPage$3.run(RevertProfileWizardPage.java:163)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.equinox.internal.p2.ui.dialogs.RevertProfileWizardPage.handleSelectionChanged(RevertProfileWizardPage.java:160)
at org.eclipse.equinox.internal.p2.ui.dialogs.RevertProfileWizardPage$2.selectionChanged(RevertProfileWizardPage.java:111)
at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:162)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:880)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:160)
at org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:2062)
at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1638)
at org.eclipse.jface.viewers.TableViewer.setSelection(TableViewer.java:157)
at org.eclipse.jface.viewers.Viewer.setSelection(Viewer.java:392)
at org.eclipse.equinox.internal.p2.ui.dialogs.RevertProfileWizardPage.createControl(RevertProfileWizardPage.java:76)
at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:170)
at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:669)
at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:543)
at org.eclipse.jface.window.Window.create(Window.java:431)
at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1089)
at org.eclipse.equinox.internal.p2.ui.sdk.UpdateAndInstallDialog$20.run(UpdateAndInstallDialog.java:655)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.equinox.internal.p2.ui.sdk.UpdateAndInstallDialog.verticalButtonPressed(UpdateAndInstallDialog.java:732)
at org.eclipse.equinox.internal.p2.ui.sdk.UpdateAndInstallDialog$21.handleEvent(UpdateAndInstallDialog.java:715)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3401)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3033)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at org.eclipse.equinox.internal.p2.ui.sdk.UpdateHandler.openDialog(UpdateHandler.java:55)
at org.eclipse.equinox.internal.p2.ui.sdk.UpdateHandler.execute(UpdateHandler.java:46)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:281)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:247)
at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:619)
at org.eclipse.ui.menus.CommandContributionItem.access$10(CommandContributionItem.java:605)
at org.eclipse.ui.menus.CommandContributionItem$4.handleEvent(CommandContributionItem.java:595)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3401)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3033)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at com.ibm.cics.explorer.application.ExplorerApplication.start(ExplorerApplication.java:39)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
Contains: No solution found because the problem in /tmp/p2Encoding5723188620131457327.opb is unsatisfiable.