Bug 182857 - NPE in PackageExplorerContentProvider.getPackageFragmentRoots
Summary: NPE in PackageExplorerContentProvider.getPackageFragmentRoots
Status: RESOLVED DUPLICATE of bug 162104
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.3   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: JDT-Core-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-04-18 00:24 EDT by Walter Harley CLA
Modified: 2007-04-18 04:22 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Walter Harley CLA 2007-04-18 00:24:36 EDT
We encountered the following NPE, in 3.3M6.  This is reproducible, but the repro case we have requires WTP and possibly some BEA-proprietary plug-ins, so you may just want to take my word for it :-)

The basic problem is that IPackageFragmentRoot.getRawClasspathEntry() is documented to throw JavaModelException when it cannot find the requested entry, but in fact it returns null.  The calling code in PackageExplorerContentProvider is not prepared to deal with a null.

So, either there needs to be a null check here, or the implementation of PackageFragmentRoot needs to be fixed.  I would suggest that probably putting in a null check is the more conservative fix at this point, although it might also be good to change the javadoc of the IPackageFragmentRoot method.

Here's the stack trace:

java.lang.NullPointerException
    at org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider.getPackageFragmentRoots(PackageExplorerContentProvider.java:291)
    at org.eclipse.jdt.ui.StandardJavaElementContentProvider.getChildren(StandardJavaElementContentProvider.java:179)
    at org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider.getChildren(PackageExplorerContentProvider.java:270)
    at org.eclipse.jdt.internal.ui.navigator.JavaNavigatorContentProvider.getPipelinedChildren(JavaNavigatorContentProvider.java:124)
    at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.pipelineChildren(NavigatorContentServiceContentProvider.java:310)
    at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.internalGetChildren(NavigatorContentServiceContentProvider.java:252)
    at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.getChildren(NavigatorContentServiceContentProvider.java:635)
    at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1277)
    at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:363)
    at org.eclipse.jface.viewers.AbstractTreeViewer.getFilteredChildren(AbstractTreeViewer.java:614)
    at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:580)
    at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2446)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1788)
    at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:561)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1795)
    at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:561)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1763)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1719)
    at org.eclipse.ui.navigator.CommonViewer.internalRefresh(CommonViewer.java:454)
    at org.eclipse.jface.viewers.StructuredViewer$8.run(StructuredViewer.java:1478)
    at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1333)
    at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1476)
    at org.eclipse.ui.navigator.CommonViewer.refresh(CommonViewer.java:303)
    at org.eclipse.ui.navigator.CommonViewer.refresh(CommonViewer.java:401)
    at org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionContentProvider$3.run(ResourceExtensionContentProvider.java:283)
    at org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionContentProvider.runUpdates(ResourceExtensionContentProvider.java:295)
    at org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionContentProvider.access$1(ResourceExtensionContentProvider.java:292)
    at org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionContentProvider$1.run(ResourceExtensionContentProvider.java:118)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
Comment 1 Frederic Fusier CLA 2007-04-18 04:21:49 EDT
This is a duplicate of JDT/Core bug 162104
Comment 2 Frederic Fusier CLA 2007-04-18 04:22:09 EDT

*** This bug has been marked as a duplicate of bug 162104 ***