After migrating from Eclipse 3.5 to 3.6 the p2-enabled update in our RCP application no longer works.

On start-up there is a warning that "the update checker service is not initialized".

Help > Check for Updates fails with this message:

Quote:

Could not locate the running profile instance. The eclipse.p2.data.area and eclipse.p2.profile properties may not be set correctly in this application's config.ini file.

Even Help > About > Installation Details fails with:

java.lang.NullPointerException
at org.eclipse.equinox.internal.p2.ui.ProvUIActivator.addProvisioningListener(ProvUIActivator.java:106)
at org.eclipse.equinox.internal.p2.ui.dialogs.InstalledIUGroup.createViewer(InstalledIUGroup.java:75)
at org.eclipse.equinox.internal.p2.ui.dialogs.StructuredIUGroup.createGroupComposite(StructuredIUGroup.java:80)
at org.eclipse.equinox.internal.p2.ui.dialogs.InstalledIUGroup.<init>(InstalledIUGroup.java:51)
at org.eclipse.equinox.p2.ui.InstalledSoftwarePage.createControl(InstalledSoftwarePage.java:95)
at org.eclipse.ui.internal.about.InstallationDialog.tabSelected(InstallationDialog.java:274)
at org.eclipse.ui.internal.about.InstallationDialog.createContents(InstallationDialog.java:245)
at org.eclipse.jface.window.Window.create(Window.java:431)
at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1089)
at org.eclipse.jface.window.Window.open(Window.java:790)
at org.eclipse.ui.internal.dialogs.AboutDialog$1.run(AboutDialog.java:126)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.dialogs.AboutDialog.buttonPressed(AboutDialog.java:121)
at ...

and:

java.lang.NullPointerException
at org.eclipse.equinox.internal.p2.ui.model.ProfileElement.getQueryable(ProfileElement.java:55)
at org.eclipse.equinox.internal.p2.ui.QueryProvider.getQueryDescriptor(QueryProvider.java:54)
at org.eclipse.equinox.internal.p2.ui.model.QueriedElement.fetchChildren(QueriedElement.java:102)
at org.eclipse.equinox.internal.p2.ui.model.RemoteQueriedElement.fetchDeferredChildren(RemoteQueriedElement.java:34)
at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:235)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Any ideas? (Cross-posted from the RCP group, where p2 knowledge appears to be more scarce...)

Yes org.eclipse.equinox.ds is required by p2. There is not an explicit
dependency in the manifests so it won't get included by a "add required".

p2 really requires something to start all the required services, this is
done using ds, but if ds wasn't there things would work if someone else
started the services. This is why the dependency isn't explicit.

I did all things suggested (i.e. adding ds, added startlevels in the .product file), but for me it did not work, My exported product still shows the same symptoms: telling me that it is not configured for update and giving me the same messages in the log. What could I possibly do wrong? I deleted the built files before I built again, to make sure that nothing of the old stuff would stay. PLEASE HELP!!!

Yes org.eclipse.equinox.ds is required by p2. There is not an explicit
dependency in the manifests so it won't get included by a "add required".

When I add org.eclipse.equinox.ds to my product or launch config I get a bunch of missing dependency errors for various org.eclipse.equinox.internal.util.* packages ("event", "hash", "pool"...). Anyone else encountered that?