Bug 162104 - NPE in PackageExplorerContentProvider.getPackageFragmentRoots()
Summary: NPE in PackageExplorerContentProvider.getPackageFragmentRoots()
Status: VERIFIED FIXED
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: 3.3 M7   Edit
Assignee: Frederic Fusier CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 174015 176429 182857 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-10-24 12:31 EDT by Jörg von Frantzius CLA
Modified: 2007-06-21 05:47 EDT (History)
4 users (show)

See Also:


Attachments
Proposed patch (4.27 KB, patch)
2007-04-25 17:05 EDT, Frederic Fusier CLA
no flags Details | Diff
New proposed patch (3.98 KB, patch)
2007-04-26 07:33 EDT, Frederic Fusier CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jörg von Frantzius CLA 2006-10-24 12:31:00 EDT
[3.3 M2]

Not sure what I was doing, but I got this one in the Error Log:
eclipse.buildId=I20060922-0010
java.version=1.5.0_08
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
Command-line arguments:  -os win32 -ws win32 -arch x86 -data D:\eclipse_workspaces\jpox_HEAD

Error
Tue Oct 24 18:31:53 CEST 2006
Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench".

java.lang.NullPointerException
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider.getPackageFragmentRoots(PackageExplorerContentProvider.java:227)
at org.eclipse.jdt.ui.StandardJavaElementContentProvider.getChildren(StandardJavaElementContentProvider.java:178)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider.getChildren(PackageExplorerContentProvider.java:208)
at org.eclipse.jdt.internal.ui.packageview.WorkingSetAwareContentProvider.getChildren(WorkingSetAwareContentProvider.java:86)
at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1214)
at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:645)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$PackageExplorerProblemTreeViewer.getFilteredChildren(PackageExplorerPart.java:279)
at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:578)
at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:772)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:749)
at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:774)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand(AbstractTreeViewer.java:1440)
at org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget(AbstractTreeViewer.java:2309)
at org.eclipse.jface.viewers.StructuredViewer.setSelectionToWidget(StructuredViewer.java:1641)
at org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget(AbstractTreeViewer.java:2680)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$PackageExplorerProblemTreeViewer.setSelectionToWidget(PackageExplorerPart.java:407)
at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1597)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.showInput(PackageExplorerPart.java:1341)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.editorActivated(PackageExplorerPart.java:1306)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$1.partVisible(PackageExplorerPart.java:231)
at org.eclipse.ui.internal.PartListenerList2$7.run(PartListenerList2.java:170)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:850)
at org.eclipse.ui.internal.PartListenerList2.fireEvent(PartListenerList2.java:53)
at org.eclipse.ui.internal.PartListenerList2.firePartVisible(PartListenerList2.java:168)
at org.eclipse.ui.internal.PartService.firePartVisible(PartService.java:121)
at org.eclipse.ui.internal.WorkbenchPagePartList.firePartVisible(WorkbenchPagePartList.java:67)
at org.eclipse.ui.internal.PartList.partVisible(PartList.java:269)
at org.eclipse.ui.internal.PartList.access$2(PartList.java:258)
at org.eclipse.ui.internal.PartList$1.propertyChanged(PartList.java:44)
at org.eclipse.ui.internal.WorkbenchPartReference.fireInternalPropertyChange(WorkbenchPartReference.java:346)
at org.eclipse.ui.internal.WorkbenchPartReference.fireVisibilityChange(WorkbenchPartReference.java:507)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:295)
at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:140)
at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:268)
at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:394)
at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1147)
at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1100)
at org.eclipse.ui.internal.WorkbenchPage.internalBringToTop(WorkbenchPage.java:747)
at org.eclipse.ui.internal.WorkbenchPage.activate(WorkbenchPage.java:584)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2580)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2504)
at org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPage.java:2496)
at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2481)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2476)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2461)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:388)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:350)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:776)
at org.eclipse.ui.views.markers.internal.ActionOpenMarker.run(ActionOpenMarker.java:86)
at org.eclipse.ui.views.markers.internal.MarkerView.handleOpenEvent(MarkerView.java:1083)
at org.eclipse.ui.views.markers.internal.TableView$2.open(TableView.java:176)
at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:819)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:850)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:149)
at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:817)
at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1072)
at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1171)
at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:249)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:243)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:283)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3390)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3009)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:348)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:165)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:341)
at org.eclipse.core.launcher.Main.basicRun(Main.java:285)
at org.eclipse.core.launcher.Main.run(Main.java:987)
at org.eclipse.core.launcher.Main.main(Main.java:962)
Comment 1 Markus Keller CLA 2006-10-24 12:49:56 EDT
We're getting null as result of IPackageFragmentRoot#getRawClasspathEntry().
Comment 2 Frederic Fusier CLA 2007-04-18 04:22:09 EDT
*** Bug 182857 has been marked as a duplicate of this bug. ***
Comment 3 Jerome Lanneluc CLA 2007-04-18 05:13:29 EDT
This indicates that the package fragment root is no longer on the classpath. We should throw a not present exception instead of returning null.
Comment 4 Frederic Fusier CLA 2007-04-25 17:05:33 EDT
Created attachment 64934 [details]
Proposed patch

Not sure that message for the JME is the good one. Jerome, any advice on this point?
Comment 5 Jerome Lanneluc CLA 2007-04-26 04:24:53 EDT
I code for the Java model status should not be INVALID_CLASSPATH (the classpath is still valid here) but ELEMENT_NOT_ON_CLASSPATH.

So if the raw entry is null, we should:

throw new JavaModelException(new JavaModelStatus(IJavaModelStatusConstants.ELEMENT_NOT_ON_CLASSPATH, this))
Comment 6 Frederic Fusier CLA 2007-04-26 07:33:54 EDT
Created attachment 65008 [details]
New proposed patch

Thanks Jerome, here's the new patch including your recommended changes.
Comment 7 Jerome Lanneluc CLA 2007-04-26 07:38:40 EDT
New patch looks good.
Comment 8 Frederic Fusier CLA 2007-04-26 09:20:52 EDT
Released for 3.3 M7 in HEAD stream.
Comment 9 Jerome Lanneluc CLA 2007-04-27 10:48:53 EDT
Verified for 3.3M7 with I20070427-0010
Comment 10 Jerome Lanneluc CLA 2007-06-20 07:58:07 EDT
*** Bug 174015 has been marked as a duplicate of this bug. ***
Comment 11 Frederic Fusier CLA 2007-06-21 05:47:11 EDT
*** Bug 176429 has been marked as a duplicate of this bug. ***