Bug 74192 - NPE in Project.getDescription
Summary: NPE in Project.getDescription
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Resources (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.1 M5   Edit
Assignee: John Arthorne CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-09-17 11:53 EDT by Dan Kehn CLA
Modified: 2005-01-07 11:28 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dan Kehn CLA 2004-09-17 11:53:54 EDT
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
Comment 1 Ed Burnette CLA 2004-09-24 11:08:50 EDT
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)

Comment 2 Ed Burnette CLA 2004-09-24 11:13:16 EDT
See also bug 74957 which I got at about the same time.
Comment 3 John Arthorne CLA 2005-01-07 11:28:15 EST
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...