Ian is an Eclipse committer and EclipseSource Distinguished Engineer with a passion for developer productivity.
He leads the J2V8 project and has served on several …
I was struggling to track down an NPE in the Yoxos Launcher that only happened on MacOS. To help others avoid this, I thought I would share the problem (and solution). The stack trace was as follows:
java.lang.NullPointerException
at org.eclipse.swt.widgets.TaskItem.updateImage(TaskItem.java:420)
at org.eclipse.swt.widgets.TaskItem.setProgress(TaskItem.java:348)
at org.eclipse.ui.internal.Workbench$TaskBarDelegatingProgressMontior.handleTaskBarProgressUpdated(Workbench.java:327)
at org.eclipse.ui.internal.Workbench$TaskBarDelegatingProgressMontior.worked(Workbench.java:269)
at org.eclipse.ui.internal.Workbench$StartupProgressBundleListener.bundleChanged(Workbench.java:421)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:847)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1569)
at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1505)
at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1500)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:391)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
It turns out that I had an improperly configured Doc Icon in my .product file. When PDE/Build generates the product, the DocIcon is configured in the eclipse.ini file as follows:
-Xdock:icon=../Resources/YoxosLauncher.icns
If this doesn’t point to a proper icon, you will get the NPE. Bug 320089 covers some of this too.
Want to ensure you get notifications for all our new blog posts? Follow us on LinkedIn and turn on notifications:
Ian is an Eclipse committer and EclipseSource Distinguished Engineer with a passion for developer productivity.
He leads the J2V8 project and has served on several …