[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[p2-dev] NPE in getProvisioningJob()
|
Hi,
I get this NPE:
!ENTRY org.eclipse.ui 4 4 2013-07-22 19:37:58.303
!MESSAGE An internal error has occurred.
!STACK 0
java.lang.NullPointerException
at org.eclipse.equinox.p2.operations.ProfileChangeOperation.getProvisioningJob(ProfileChangeOperation.java:320)
at org.rssowl.ui.internal.actions.FindUpdatesAction.run(FindUpdatesAction.java:102)
at org.rssowl.ui.internal.Controller$11.run(Controller.java:1526)
at org.rssowl.ui.internal.util.JobRunner$1.runInUIThread(JobRunner.java:97)
at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:95)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3717)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3366)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.rssowl.ui.internal.Application.start(Application.java:119)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
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:354)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
I tried to change the RssOwl update mechanism to use the p2 framework.
The current code does the UpdateJob in FindUpdatesAction:
https://github.com/rssowl/RSSOwl/blob/master/org.rssowl.ui/src/org/rssowl/ui/internal/actions/FindUpdatesAction.java#L95
I tried to replace the update job with this:
NullProgressMonitor monitor = new NullProgressMonitor();
Collection<URI> repos = Arrays.asList(new URI(UPDATE_SITE));
UpdateOperation updateOperation = operationFactory.createUpdateOperation(null, repos, monitor);
ProvisioningJob job = updateOperation.getProvisioningJob(null);
But this code results in above NPE.
The p2 repository directory seems to be missing in my runtime:
org.eclipse.equinox.p2.core.IAgentLocation=file:/home/thomas/workspace/.metadata/.plugins/org.eclipse.pde.core/Launch%20RSSOwl%202.0/.p2/
$ pwd
/home/thomas/workspace/.metadata/.plugins/org.eclipse.pde.core/Launch RSSOwl 2.0
$ ll -a
insgesamt 32
drwxrwxr-x. 6 thomas thomas 4096 22. Jul 19:34 .
drwxrwxr-x. 9 thomas thomas 4096 22. Jul 19:33 ..
-rw-rw-r--. 1 thomas thomas 698 22. Jul 19:33 config.ini
-rw-rw-r--. 1 thomas thomas 184 22. Jul 19:33 dev.properties
drwxrwxr-x. 3 thomas thomas 4096 22. Jul 19:34 org.eclipse.core.runtime
drwxrwxr-x. 3 thomas thomas 4096 22. Jul 19:34 org.eclipse.equinox.app
drwxrwxr-x. 2 thomas thomas 4096 22. Jul 19:33 org.eclipse.equinox.simpleconfigurator
drwxrwxr-x. 4 thomas thomas 4096 22. Jul 19:34 org.eclipse.osgi
how's creating this directory?
what's missing in my approach?
with kind regards
thomas