Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 337383

Summary: Progress Provider - NullPointerException in AbstractApplication
Product: [RT] Riena Reporter: Elias Volanakis <elias>
Component: UIAssignee: Nobody - feel free to take it <nobody>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: nobody
Version: unspecified   
Target Milestone: 3.0.0   
Hardware: PC   
OS: Windows Vista   
Whiteboard:

Description Elias Volanakis CLA 2011-02-16 18:57:58 EST
The method disableEclipseProgressManager() in AbstractApplication causes an NPE and prevents startup. Seen with the 3.7.M5 target.

Reproducible with: 

- Mail Sample (Riena UI)
- Riena Demo Client

Reason is that there is no Display when this is called.

Stack trace:

java.lang.NullPointerException
	at org.eclipse.jface.resource.JFaceResources.getResources(JFaceResources.java:207)
	at org.eclipse.jface.resource.JFaceResources.getImageRegistry(JFaceResources.java:404)
	at org.eclipse.ui.internal.progress.ProgressManager.setUpImage(ProgressManager.java:598)
	at org.eclipse.ui.internal.progress.ProgressManager.setUpImages(ProgressManager.java:377)
	at org.eclipse.ui.internal.progress.ProgressManager.<init>(ProgressManager.java:363)
	at org.eclipse.ui.internal.progress.ProgressManager.getInstance(ProgressManager.java:149)
	at org.eclipse.riena.navigation.ui.application.AbstractApplication.disableEclipseProgressManager(AbstractApplication.java:83)
	at org.eclipse.riena.navigation.ui.application.AbstractApplication.installProgressProviderBridge(AbstractApplication.java:70)
	at org.eclipse.riena.navigation.ui.application.AbstractApplication.start(AbstractApplication.java:65)
	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:344)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
Comment 1 Elias Volanakis CLA 2011-02-16 18:58:34 EST
I'm commenting #disableProgressManager out temporarily - please enable to reproduce
Comment 2 Nobody - feel free to take it CLA 2011-02-18 04:43:45 EST
Could reproduce the problem running the Riena Demo Client.
Comment 3 Nobody - feel free to take it CLA 2011-02-18 04:45:11 EST
Added the Method void initializeUI() in AbstractApplication as a hook to create the PlatformUi Display instance. 
Implemented in SwtApplication.
Comment 4 Elias Volanakis CLA 2011-02-21 00:45:10 EST
Heiko, das hat nicht geholfen. In RAP bekomme ich noch folgende Exception:

java.lang.NullPointerException
	at org.eclipse.ui.internal.progress.ProgressInfoItem.init(ProgressInfoItem.java:183)
	at org.eclipse.ui.internal.progress.ProgressManager$ProgressManagerProvider.getInstance(ProgressManager.java:106)
	at org.eclipse.ui.internal.progress.ProgressManager.getInstance(ProgressManager.java:188)
	at org.eclipse.riena.navigation.ui.application.AbstractApplication.disableEclipseProgressManager(AbstractApplication.java:90)
	at org.eclipse.riena.navigation.ui.application.AbstractApplication.installProgressProviderBridge(AbstractApplication.java:76)
	at org.eclipse.riena.navigation.ui.application.AbstractApplication.start(AbstractApplication.java:65)
	at org.eclipse.rap.ui.internal.application.EntrypointApplicationWrapper.createUI(EntrypointApplicationWrapper.java:27)
	at org.eclipse.rwt.internal.lifecycle.EntryPointManager.createUI(EntryPointManager.java:92)
	at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:242)
	at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:111)
	at java.lang.Thread.run(Unknown Source)
	at org.eclipse.rwt.internal.lifecycle.UIThread.run(UIThread.java:102)
	
Bitte probiere es beim naechsten Mal auch mit RAP :-)
Comment 5 Nobody - feel free to take it CLA 2011-02-24 12:01:54 EST
I try to reproduce ..
Comment 6 Nobody - feel free to take it CLA 2011-02-24 12:04:08 EST
Can reproduce the bug under RAP
Comment 7 Nobody - feel free to take it CLA 2011-02-24 12:27:16 EST
I now use the RapDetector to check if RAP is available before disabling the ProgressManager. Behaviour of ProgressManager in RAP and indigo RCP is different concerning registration of job listeners.
Code now works for rap and rcp.