Community
Participate
Working Groups
This happens when I try to create a hierarchy search scope for java.util.ArrayList and google.guava is on the class path of the current project. The code that throws the NPE is if (methodDescriptor != null) { MethodBinding enclosingMethod = findMethod(methodDescriptor, missingTypeNames); typeVars = enclosingMethod.typeVariables; } where the enclosingMethod is null. Any idea for a workaround is highly appreciated. The problematic type seems to be com.google.common.collect.StandardTable$Row$RowEntrySet$1 which is a private inner class in a private inner class: private class RowEntrySet extends Maps.EntrySet<C, V> { @Override Map<C, V> map() { return Row.this; } @Override public int size() { Map<C, V> map = backingRowMap(); return (map == null) ? 0 : map.size(); } @Override public Iterator<Entry<C, V>> iterator() { final Map<C, V> map = backingRowMap(); if (map == null) { return Iterators.emptyModifiableIterator(); } final Iterator<Entry<C, V>> iterator = map.entrySet().iterator(); return new Iterator<Entry<C, V>>() { @Override public boolean hasNext() { return iterator.hasNext(); } @Override public Entry<C, V> next() { final Entry<C, V> entry = iterator.next(); return new ForwardingMapEntry<C, V>() { @Override protected Entry<C, V> delegate() { return entry; } @Override public V setValue(V value) { return super.setValue(checkNotNull(value)); } @Override public boolean equals(Object object) { // TODO(user): identify why this affects GWT tests return standardEquals(object); } }; } @Override public void remove() { iterator.remove(); maintainEmptyInvariant(); } }; } } java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.cachePartsFrom(BinaryTypeBinding.java:305) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:640) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.cacheBinaryType(LookupEnvironment.java:177) at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.resolve(HierarchyResolver.java:713) at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.buildForProject(IndexBasedHierarchyBuilder.java:226) at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.buildFromPotentialSubtypes(IndexBasedHierarchyBuilder.java:306) at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.build(IndexBasedHierarchyBuilder.java:131) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.compute(TypeHierarchy.java:300) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.refresh(TypeHierarchy.java:1255) at org.eclipse.jdt.internal.core.CreateTypeHierarchyOperation.executeOperation(CreateTypeHierarchyOperation.java:90) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788) at org.eclipse.jdt.internal.core.BinaryType.newTypeHierarchy(BinaryType.java:917) at org.eclipse.jdt.internal.core.search.HierarchyScope.initialize(HierarchyScope.java:327) at org.eclipse.jdt.internal.core.search.HierarchyScope.encloses(HierarchyScope.java:229) This one seems to be related: java.lang.NullPointerException at org.eclipse.jdt.core.dom.DefaultBindingResolver.resolveType(DefaultBindingResolver.java:1542) at org.eclipse.jdt.core.dom.Type.resolveBinding(Type.java:181) at org.eclipse.jdt.internal.ui.search.ImplementOccurrencesFinder.initialize(ImplementOccurrencesFinder.java:114) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.updateOccurrenceAnnotations(JavaEditor.java:3324) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$ActivationListener.windowActivated(JavaEditor.java:1267) at org.eclipse.ui.internal.Workbench$14.run(Workbench.java:1007) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.Workbench.fireWindowActivated(Workbench.java:1005) at org.eclipse.ui.internal.WorkbenchWindow$28.shellActivated(WorkbenchWindow.java:3141) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:88) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4129) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1461) at org.eclipse.swt.widgets.Shell.windowDidBecomeKey(Shell.java:2102) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5524) at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:213) at org.eclipse.swt.widgets.Widget.becomeKeyWindow(Widget.java:361) at org.eclipse.swt.widgets.Shell.becomeKeyWindow(Shell.java:533) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5348) at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) at org.eclipse.swt.internal.cocoa.NSWindow.close(NSWindow.java:54) at org.eclipse.swt.widgets.Shell.destroyWidget(Shell.java:773) at org.eclipse.swt.widgets.Widget.release(Widget.java:1309) at org.eclipse.swt.widgets.Control.release(Control.java:2817) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:662) at org.eclipse.jface.window.Window.close(Window.java:335) at org.eclipse.jface.dialogs.Dialog.close(Dialog.java:979) at org.eclipse.ui.internal.statushandlers.InternalDialog.close(InternalDialog.java:710) at org.eclipse.jface.dialogs.Dialog.okPressed(Dialog.java:940) at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:472) at org.eclipse.ui.internal.statushandlers.InternalDialog.buttonPressed(InternalDialog.java:190) at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4129) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3975) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3614) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:352) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 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:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:624) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579) at org.eclipse.equinox.launcher.Main.run(Main.java:1431)
3.5.2? wow :) Have you tried this using a more recent version?
(In reply to comment #1) > 3.5.2? wow :) > Have you tried this using a more recent version? Hmm seems to work fine with 3.8.x Any hint on where to put a reasonable try { } catch for 3.5.2?
(In reply to comment #1) > 3.5.2? wow :) > Have you tried this using a more recent version? 3.6.2 works fine, too. Please feel free to close it.
Closing
Marking as verified for 3.8M4 since the submitter has already verified with 3.6.2 and 3.8