Community
Participate
Working Groups
Build: I-20031216 (1717) I have a Hello world plugin in my workspace. I also have org.eclipse.runtime.compatibility and all its prereqs imported as binary. I deleted org.eclipse.core.runtime.compatibility from the list of dependencies of the Hello world plugin and saved. This caused compilation errors. I double-clicked on one of the errors in the Problems view, and I got the following NPE: Error Dec 17, 2003 00:58:44.872 Problems occurred when invoking code from plug- in: "org.eclipse.core.runtime". java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.fields (SourceTypeBinding.java:354) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.faultInTypesForField sAndMethods(SourceTypeBinding.java:342) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes (CompilationUnitScope.java:350) at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.resolve (HierarchyResolver.java:666) at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.resolve (HierarchyResolver.java:495) at org.eclipse.jdt.internal.core.hierarchy.HierarchyBuilder.buildSupertypes (HierarchyBuilder.java:120) at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.build (IndexBasedHierarchyBuilder.java:133) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.compute (TypeHierarchy.java:319) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.refresh (TypeHierarchy.java:1230) at org.eclipse.jdt.internal.core.CreateTypeHierarchyOperation.executeOperation (CreateTypeHierarchyOperation.java:90) at org.eclipse.jdt.internal.core.JavaModelOperation.execute (JavaModelOperation.java:364) at org.eclipse.jdt.internal.core.JavaModelOperation.run (JavaModelOperation.java:703) at org.eclipse.jdt.internal.core.JavaElement.runOperation(JavaElement.java:524) at org.eclipse.jdt.internal.core.SourceType.newSupertypeHierarchy (SourceType.java:550) at org.eclipse.jdt.internal.core.SourceType.newSupertypeHierarchy (SourceType.java:502) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.getTypeHierarchy (SuperTypeHierarchyCache.java:73) at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.getOverrideIndicators (OverrideIndicatorLabelDecorator.java:151) at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.computeAdornmentFlags (OverrideIndicatorLabelDecorator.java:121) at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.decorateImage (OverrideIndicatorLabelDecorator.java:93) at org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider.decorateImage (JavaUILabelProvider.java:119) at org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider.getImage (JavaUILabelProvider.java:134) at org.eclipse.jface.viewers.DecoratingLabelProvider.getImage (DecoratingLabelProvider.java:73) at org.eclipse.jdt.internal.ui.viewsupport.DecoratingJavaLabelProvider.getImage (DecoratingJavaLabelProvider.java:103) at org.eclipse.jface.viewers.TreeViewer.doUpdateItem(TreeViewer.java:99) at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run (AbstractTreeViewer.java:87) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:813) at org.eclipse.core.runtime.Platform.run(Platform.java:447) at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem (AbstractTreeViewer.java:469) at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run (StructuredViewer.java:119) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:813) at org.eclipse.core.runtime.Platform.run(Platform.java:447) at org.eclipse.jface.viewers.StructuredViewer.updateItem (StructuredViewer.java:1285) at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem (AbstractTreeViewer.java:383) at org.eclipse.jface.viewers.AbstractTreeViewer$1.run (AbstractTreeViewer.java:363) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:84) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren (AbstractTreeViewer.java:349) at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandToLevel (AbstractTreeViewer.java:926) at org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$JavaOutlineViewer.intern alExpandToLevel(JavaOutlinePage.java:423) at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandToLevel (AbstractTreeViewer.java:935) at org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$JavaOutlineViewer.intern alExpandToLevel(JavaOutlinePage.java:423) at org.eclipse.jface.viewers.AbstractTreeViewer$5.run (AbstractTreeViewer.java:809) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection (StructuredViewer.java:810) at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged (AbstractTreeViewer.java:798) at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:238) at org.eclipse.jface.viewers.StructuredViewer.setInput (StructuredViewer.java:1004) at org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage.createControl (JavaOutlinePage.java:1056) at org.eclipse.ui.views.contentoutline.ContentOutline.doCreatePage (ContentOutline.java:125) at org.eclipse.ui.part.PageBookView.createPage(PageBookView.java:306) at org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:561) at org.eclipse.ui.internal.PartListenerList$1.run(PartListenerList.java:49) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:813) at org.eclipse.core.runtime.Platform.run(Platform.java:447) at org.eclipse.ui.internal.PartListenerList.firePartActivated (PartListenerList.java:47) at org.eclipse.ui.internal.WorkbenchPage.firePartActivated (WorkbenchPage.java:1251) at org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:2513) at org.eclipse.ui.internal.WorkbenchPage.activate(WorkbenchPage.java:448) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor (WorkbenchPage.java:2061) at org.eclipse.ui.internal.WorkbenchPage.access$6(WorkbenchPage.java:1990) at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:1977) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:84) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:1972) at org.eclipse.ui.ide.IDE.openEditor(IDE.java:265) at org.eclipse.ui.ide.IDE.openEditor(IDE.java:317) at org.eclipse.ui.views.markers.internal.ActionOpenMarker.run (ActionOpenMarker.java:76) at org.eclipse.ui.views.markers.internal.MarkerView.handleOpenEvent (MarkerView.java:422) at org.eclipse.ui.views.markers.internal.TableView$2.open(TableView.java:162) at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:406) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:813) at org.eclipse.core.runtime.Platform.run(Platform.java:447) at org.eclipse.jface.viewers.StructuredViewer.fireOpen (StructuredViewer.java:404) at org.eclipse.jface.viewers.StructuredViewer.handleOpen (StructuredViewer.java:614) at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen (StructuredViewer.java:703) at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:209) at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:204) at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:233) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:847) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2311) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1992) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1506) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1482) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:246) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:139) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:47) at org.eclipse.core.internal.runtime.PlatformActivator$1.run (PlatformActivator.java:233) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:85) 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:324) at org.eclipse.core.launcher.Main.basicRun(Main.java:281) at org.eclipse.core.launcher.Main.run(Main.java:744) at org.eclipse.core.launcher.Main.main(Main.java:583)
Same issue as bug 48459. Added protection for uninitialized fields & methods.
Kent, looking at the code it looks like we're always building field and method bindings in the hierarchy resolver. I don't find where we don't?
I don't see it either. Could containsLocalType be screwing things up?
How would containsLocalType interfer with field binding creation?
It controls whether you parse methods or not. Can a local type be created without first parsing its enclosing method?
No, I don't see how this would be possible.
Workaround by Kent should be enough. Closing.