Community
Participate
Working Groups
I've been seeing this error when opening / closing projects this week. eclipse.buildId=M200409010800 java.version=1.4.2_05 java.vendor=Sun Microsystems Inc. It looks similar to bug# 44578 but that is very old. Here's the stack trace. java.lang.NullPointerException at org.eclipse.core.internal.resources.Project.getDescription(Project.java:341) at org.eclipse.ui.internal.ide.model.WorkbenchProject.getBaseImage (WorkbenchProject.java:44) at org.eclipse.ui.internal.ide.model.WorkbenchResource.getImageDescriptor (WorkbenchResource.java:54) at org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider.getWorkbenchIm ageDescriptor(JavaElementImageProvider.java:164) at org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider.computeDescrip tor(JavaElementImageProvider.java:120) at org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider.getImageLabel (JavaElementImageProvider.java:93) at org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider.getImage (JavaUILabelProvider.java:129) at org.eclipse.jface.viewers.DecoratingLabelProvider.getImage (DecoratingLabelProvider.java:74) at org.eclipse.jface.viewers.DecoratingLabelProvider.updateLabel (DecoratingLabelProvider.java:208) at org.eclipse.jdt.internal.ui.viewsupport.ResourceToItemsMapper.updateItem (ResourceToItemsMapper.java:82) at org.eclipse.jdt.internal.ui.viewsupport.ResourceToItemsMapper.resourceChanged (ResourceToItemsMapper.java:62) at org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.handleLabelProviderCh anged(ProblemTreeViewer.java:115) at org.eclipse.jface.viewers.ContentViewer$1.labelProviderChanged (ContentViewer.java:74) at org.eclipse.ui.internal.decorators.DecoratorManager$1.run (DecoratorManager.java:203) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:616) at org.eclipse.core.runtime.Platform.run(Platform.java:747) at org.eclipse.ui.internal.decorators.DecoratorManager.fireListeners (DecoratorManager.java:201) at org.eclipse.ui.internal.decorators.DecorationScheduler$2.runInUIThread (DecorationScheduler.java:369) 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:106) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:2749) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2434) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block (ModalContext.java:136) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:262) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run (ProgressMonitorDialog.java:397) at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run (ProgressMonitorJobsDialog.java:251) at org.eclipse.ui.actions.WorkspaceAction.run(WorkspaceAction.java:286) at org.eclipse.jdt.ui.actions.OpenProjectAction.run(OpenProjectAction.java:154) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun (SelectionDispatchAction.java:212) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run (SelectionDispatchAction.java:188) at org.eclipse.jface.action.Action.runWithEvent(Action.java:881) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection (ActionContributionItem.java:915) at org.eclipse.jface.action.ActionContributionItem.access$2 (ActionContributionItem.java:866) at org.eclipse.jface.action.ActionContributionItem$7.handleEvent (ActionContributionItem.java:785) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96) at org.eclipse.core.internal.runtime.PlatformActivator$1.run (PlatformActivator.java:335) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129) 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.basicRun(Main.java:185) at org.eclipse.core.launcher.Main.run(Main.java:704) at org.eclipse.core.launcher.Main.main(Main.java:688) Project.getDescription
3.1I200409231200 I got what looks like the same error opening previously closed projects. Two tracebacks follow: Error Sep 24, 2004 10:54:34.836 Problems occurred when invoking code from plug- in: "org.eclipse.core.runtime". java.lang.NullPointerException at org.eclipse.core.internal.resources.Project.getDescription(Project.java:342) at org.eclipse.ui.internal.ide.model.WorkbenchProject.getBaseImage (WorkbenchProject.java:45) at org.eclipse.ui.internal.ide.model.WorkbenchResource.getImageDescriptor (WorkbenchResource.java:54) at org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider.getWorkbenchIm ageDescriptor(JavaElementImageProvider.java:164) at org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider.computeDescrip tor(JavaElementImageProvider.java:120) at org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider.getImageLabel (JavaElementImageProvider.java:93) at org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider.getImage (JavaUILabelProvider.java:129) at org.eclipse.jface.viewers.DecoratingLabelProvider.getImage (DecoratingLabelProvider.java:82) at org.eclipse.jface.viewers.DecoratingLabelProvider.updateLabel (DecoratingLabelProvider.java:212) at org.eclipse.jface.viewers.TreeViewer.doUpdateItem(TreeViewer.java:128) at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run (AbstractTreeViewer.java:86) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:616) at org.eclipse.core.runtime.Platform.run(Platform.java:747) at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem (AbstractTreeViewer.java:488) at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run (StructuredViewer.java:135) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:616) at org.eclipse.core.runtime.Platform.run(Platform.java:747) at org.eclipse.jface.viewers.StructuredViewer.updateItem (StructuredViewer.java:1432) at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren (AbstractTreeViewer.java:1601) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct (AbstractTreeViewer.java:1091) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh (AbstractTreeViewer.java:1068) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh (AbstractTreeViewer.java:1033) at org.eclipse.jface.viewers.StructuredViewer$8.run(StructuredViewer.java:991) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection (StructuredViewer.java:901) at org.eclipse.jface.viewers.StructuredViewer.refresh (StructuredViewer.java:989) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider$3.run (PackageExplorerContentProvider.java:580) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider$7.run (PackageExplorerContentProvider.java:622) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:106) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:2760) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2445) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block (ModalContext.java:141) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:279) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run (ProgressMonitorDialog.java:449) at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run (ProgressMonitorJobsDialog.java:268) at org.eclipse.ui.actions.WorkspaceAction.run(WorkspaceAction.java:308) at org.eclipse.jdt.ui.actions.OpenProjectAction.run(OpenProjectAction.java:154) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun (SelectionDispatchAction.java:212) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run (SelectionDispatchAction.java:188) at org.eclipse.jface.action.Action.runWithEvent(Action.java:988) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection (ActionContributionItem.java:555) at org.eclipse.jface.action.ActionContributionItem.access$2 (ActionContributionItem.java:505) at org.eclipse.jface.action.ActionContributionItem$6.handleEvent (ActionContributionItem.java:419) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2783) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2442) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1443) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1414) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:271) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102) at org.eclipse.core.internal.runtime.PlatformActivator$1.run (PlatformActivator.java:335) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129) 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.basicRun(Main.java:185) at org.eclipse.core.launcher.Main.run(Main.java:704) at org.eclipse.core.launcher.Main.main(Main.java:688) Error Sep 24, 2004 10:54:35.836 Problems occurred when invoking code from plug- in: "org.eclipse.core.runtime". java.lang.NullPointerException at org.eclipse.core.internal.resources.Project.getDescription(Project.java:342) at org.eclipse.ui.internal.ide.model.WorkbenchProject.getBaseImage (WorkbenchProject.java:45) at org.eclipse.ui.internal.ide.model.WorkbenchResource.getImageDescriptor (WorkbenchResource.java:54) at org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider.getWorkbenchIm ageDescriptor(JavaElementImageProvider.java:164) at org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider.computeDescrip tor(JavaElementImageProvider.java:120) at org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider.getImageLabel (JavaElementImageProvider.java:93) at org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider.getImage (JavaUILabelProvider.java:129) at org.eclipse.jface.viewers.DecoratingLabelProvider.getImage (DecoratingLabelProvider.java:82) at org.eclipse.jface.viewers.DecoratingLabelProvider.updateLabel (DecoratingLabelProvider.java:212) at org.eclipse.jdt.internal.ui.viewsupport.ResourceToItemsMapper.updateItem (ResourceToItemsMapper.java:82) at org.eclipse.jdt.internal.ui.viewsupport.ResourceToItemsMapper.resourceChanged (ResourceToItemsMapper.java:62) at org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.handleLabelProviderCh anged(ProblemTreeViewer.java:115) at org.eclipse.jface.viewers.ContentViewer$1.labelProviderChanged (ContentViewer.java:74) at org.eclipse.ui.internal.decorators.DecoratorManager$1.run (DecoratorManager.java:210) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:616) at org.eclipse.core.runtime.Platform.run(Platform.java:747) at org.eclipse.ui.internal.decorators.DecoratorManager.fireListeners (DecoratorManager.java:208) at org.eclipse.ui.internal.decorators.DecorationScheduler$2.runInUIThread (DecorationScheduler.java:406) at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:96) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:106) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:2760) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2445) at org.eclipse.jface.window.Window.runEventLoop(Window.java:706) at org.eclipse.jface.window.Window.open(Window.java:684) at org.eclipse.jface.dialogs.MessageDialog.openError(MessageDialog.java:319) at org.eclipse.jface.util.SafeRunnable.handleException(SafeRunnable.java:53) at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.handleExcep tion(AbstractTreeViewer.java:97) at org.eclipse.core.internal.runtime.InternalPlatform.handleException (InternalPlatform.java:350) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:618) at org.eclipse.core.runtime.Platform.run(Platform.java:747) at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem (AbstractTreeViewer.java:488) at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run (StructuredViewer.java:135) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:616) at org.eclipse.core.runtime.Platform.run(Platform.java:747) at org.eclipse.jface.viewers.StructuredViewer.updateItem (StructuredViewer.java:1432) at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren (AbstractTreeViewer.java:1601) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct (AbstractTreeViewer.java:1091) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh (AbstractTreeViewer.java:1068) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh (AbstractTreeViewer.java:1033) at org.eclipse.jface.viewers.StructuredViewer$8.run(StructuredViewer.java:991) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection (StructuredViewer.java:901) at org.eclipse.jface.viewers.StructuredViewer.refresh (StructuredViewer.java:989) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider$3.run (PackageExplorerContentProvider.java:580) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider$7.run (PackageExplorerContentProvider.java:622) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:106) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:2760) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2445) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block (ModalContext.java:141) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:279) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run (ProgressMonitorDialog.java:449) at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run (ProgressMonitorJobsDialog.java:268) at org.eclipse.ui.actions.WorkspaceAction.run(WorkspaceAction.java:308) at org.eclipse.jdt.ui.actions.OpenProjectAction.run(OpenProjectAction.java:154) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun (SelectionDispatchAction.java:212) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run (SelectionDispatchAction.java:188) at org.eclipse.jface.action.Action.runWithEvent(Action.java:988) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection (ActionContributionItem.java:555) at org.eclipse.jface.action.ActionContributionItem.access$2 (ActionContributionItem.java:505) at org.eclipse.jface.action.ActionContributionItem$6.handleEvent (ActionContributionItem.java:419) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2783) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2442) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1443) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1414) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:271) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102) at org.eclipse.core.internal.runtime.PlatformActivator$1.run (PlatformActivator.java:335) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129) 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.basicRun(Main.java:185) at org.eclipse.core.launcher.Main.run(Main.java:704) at org.eclipse.core.launcher.Main.main(Main.java:688)
See also bug 74957 which I got at about the same time.
Fixed. If one thread calls getDescription while another thread is creating or opening the project, there is a small timing window when the description is null. I have fixed this to throw a CoreException indicating that the project does not exist. This is a reasonable half-truth - while a project is being created it neither exists nor doesn't exist. The metaphysics of concurrent programming...