Project: Eclipse_Platform_UI
Bug 123169 [Progress] NPE from JobInfo
Reported: 2006-01-09 19:15:55 | Status: verified fixed

Version: 3.2.0 Build id: I20060105-0800 While running a CVS synchronize the attached exception appeared in my log. My guess is that the taskInfo field was cleared after the null check, but before getDisplayString was caleld on it). Assigning the field to a local variable first should stop this happening again. getPercentDone and getCondensedDisplayString already do this. org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException) at org.eclipse.swt.SWT.error(SWT.java:3283) at org.eclipse.swt.SWT.error(SWT.java:3206) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:126) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3262) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2908) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1764) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1728) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:398) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:109) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:379) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177) 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.core.launcher.Main.invokeFramework(Main.java:338) at org.eclipse.core.launcher.Main.basicRun(Main.java:282) at org.eclipse.core.launcher.Main.run(Main.java:977) at org.eclipse.core.launcher.Main.main(Main.java:952) Caused by: java.lang.NullPointerException at org.eclipse.ui.internal.progress.JobInfo.getDisplayStringWithStatus(JobInfo.java:269) at org.eclipse.ui.internal.progress.JobInfo.getDisplayString(JobInfo.java:246) at org.eclipse.ui.internal.progress.JobInfo.getDisplayString(JobInfo.java:239) at org.eclipse.ui.internal.progress.GroupInfo.compareTo(GroupInfo.java:111) at org.eclipse.ui.internal.progress.ProgressManagerUtil$1.compare(ProgressManagerUtil.java:93) at org.eclipse.jface.viewers.ViewerSorter$1.compare(ViewerSorter.java:177) at java.util.Arrays.mergeSort(Unknown Source) at java.util.Arrays.sort(Unknown Source) at org.eclipse.jface.viewers.ViewerSorter.sort(ViewerSorter.java:175) at org.eclipse.jface.viewers.StructuredViewer.getSortedChildren(StructuredViewer.java:948) at org.eclipse.ui.internal.progress.ProgressCanvasViewer.internalRefresh(ProgressCanvasViewer.java:135) at org.eclipse.jface.viewers.StructuredViewer.internalRefresh(StructuredViewer.java:1149) at org.eclipse.jface.viewers.StructuredViewer$8.run(StructuredViewer.java:1349) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1259) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1347) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1304) at org.eclipse.ui.internal.progress.ProgressCanvasViewer.add(ProgressCanvasViewer.java:237) at org.eclipse.ui.internal.progress.ProgressViewerContentProvider.add(ProgressViewerContentProvider.java:203) at org.eclipse.ui.internal.progress.ProgressViewUpdater$1.runInUIThread(ProgressViewUpdater.java:271) at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:93) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123) ... 20 more

Files changed in fix:
bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/JobInfo.java