Bug 99811 - NPE during content assist
Summary: NPE during content assist
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.1   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: 3.1 RC3   Edit
Assignee: Kent Johnson CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 99964 100234 100286 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-06-13 16:00 EDT by Pratik Shah CLA
Modified: 2005-06-16 14:58 EDT (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pratik Shah CLA 2005-06-13 16:00:34 EDT
java.lang.NullPointerException
at 
org.eclipse.jdt.internal.compiler.lookup.ClassScope.checkForInheritedMemberType
s(ClassScope.java:652)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy
(ClassScope.java:924)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectMemberTypes
(ClassScope.java:709)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy
(ClassScope.java:922)
at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierar
chy(CompilationUnitScope.java:254)
at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings
(LookupEnvironment.java:249)
at org.eclipse.jdt.internal.codeassist.impl.Engine.accept(Engine.java:92)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType
(LookupEnvironment.java:131)
at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage
(PackageBinding.java:178)
at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage
(Scope.java:2386)
at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:2131)
at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding
(SingleTypeReference.java:39)
at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType
(TypeReference.java:141)
at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveSuperType
(TypeReference.java:104)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.findSupertype
(ClassScope.java:1074)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperInterfaces
(ClassScope.java:823)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy
(ClassScope.java:914)
at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierar
chy(CompilationUnitScope.java:254)
at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings
(LookupEnvironment.java:249)
at org.eclipse.jdt.internal.codeassist.impl.Engine.accept(Engine.java:92)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType
(LookupEnvironment.java:131)
at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage
(PackageBinding.java:178)
at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage
(Scope.java:2386)
at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:2131)
at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding
(SingleTypeReference.java:39)
at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType
(TypeReference.java:141)
at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveSuperType
(TypeReference.java:104)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.findSupertype
(ClassScope.java:1074)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperclass
(ClassScope.java:741)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy
(ClassScope.java:913)
at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierar
chy(CompilationUnitScope.java:254)
at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings
(LookupEnvironment.java:249)
at org.eclipse.jdt.internal.codeassist.impl.Engine.accept(Engine.java:92)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType
(LookupEnvironment.java:131)
at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage
(PackageBinding.java:178)
at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport
(CompilationUnitScope.java:403)
at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleImport
(CompilationUnitScope.java:456)
at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports
(CompilationUnitScope.java:321)
at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes
(CompilationUnitScope.java:390)
at org.eclipse.jdt.internal.codeassist.CompletionEngine.complete
(CompletionEngine.java:1493)
at org.eclipse.jdt.internal.core.Openable.codeComplete(Openable.java:128)
at org.eclipse.jdt.internal.core.CompilationUnit.codeComplete
(CompilationUnit.java:301)
at org.eclipse.jdt.internal.core.CompilationUnit.codeComplete
(CompilationUnit.java:294)
at 
org.eclipse.jdt.internal.ui.text.java.JavaCompletionProcessor.internalComputeCo
mpletionProposals(JavaCompletionProcessor.java:336)
at 
org.eclipse.jdt.internal.ui.text.java.JavaCompletionProcessor.computeCompletion
Proposals(JavaCompletionProcessor.java:313)
at 
org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposal
s(ContentAssistant.java:1503)
at 
org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals
(CompletionProposalPopup.java:256)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$7
(CompletionProposalPopup.java:253)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup$1.run
(CompletionProposalPopup.java:216)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals
(CompletionProposalPopup.java:211)
at 
org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions
(ContentAssistant.java:1352)
at 
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewe
r.doOperation(CompilationUnitEditor.java:188)
at org.eclipse.ui.texteditor.ContentAssistAction$1.run
(ContentAssistAction.java:82)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at org.eclipse.ui.texteditor.ContentAssistAction.run
(ContentAssistAction.java:80)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:996)
at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:182)
at org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute
(LegacyHandlerWrapper.java:108)
at org.eclipse.core.commands.Command.execute(Command.java:311)
at org.eclipse.core.commands.ParameterizedCommand.execute
(ParameterizedCommand.java:396)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand
(WorkbenchKeyboard.java:459)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press
(WorkbenchKeyboard.java:781)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent
(WorkbenchKeyboard.java:828)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings
(WorkbenchKeyboard.java:550)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3
(WorkbenchKeyboard.java:493)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent
(WorkbenchKeyboard.java:117)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:910)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:868)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:853)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:881)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:877)
at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1189)
at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3134)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3037)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:3682)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1655)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2689)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1716)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1680)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:365)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run
(PlatformActivator.java:226)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
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.invokeFramework(Main.java:334)
at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
at org.eclipse.core.launcher.Main.run(Main.java:973)
at org.eclipse.core.launcher.Main.main(Main.java:948)
Comment 1 Olivier Thomann CLA 2005-06-13 16:02:56 EDT
What build are you using?
Any steps to reproduce?
Comment 2 Pratik Shah CLA 2005-06-13 16:04:13 EDT
I can produce this bug consistently in this one class.  Other classes are 
working fine.  Reopening the editor or cleaning the project didn't help.  I 
can provide a screenshot of the class hierarchy if needed.
Comment 3 Pratik Shah CLA 2005-06-13 16:05:16 EDT
3.1RC2.  Don't know what steps you can take to reproduce, unless you want to 
try loading a few GEF projects in your workspace.  I was hoping the stack 
trace would give you enough information.
Comment 4 Olivier Thomann CLA 2005-06-13 16:25:51 EDT
Please provide steps to reproduce using GEF projects?
We need to extract a regression test to track it down.
Comment 5 Pratik Shah CLA 2005-06-13 16:37:15 EDT
I have verified that this problem occurs with this class on another computer 
as well.

Check out org.eclipse.draw2d, org.eclipse.gef and 
org.eclipse.gef.examples.logic from dev.eclipse.org:/home/tools.  The problem 
is in class LogicDiagramEditPart in the examples project.
Comment 6 Olivier Thomann CLA 2005-06-13 16:46:46 EDT
Reproduced.
Content assist or search is broken.
I'll try to isolate a small test case.
Thanks for your help.
Comment 7 Pratik Shah CLA 2005-06-13 17:04:52 EDT
I am also seeing this problem when trying to see who's calling a certain 
method in class ConnectionLayer.  Select class and hit Ctrl+Alt+H.  This 
problem does not happen in LogicDiagramEditPart, and that problem does not 
happen here.  The NPE is at the same place though.  Here's the stack trace.

java.lang.NullPointerException
	at 
org.eclipse.jdt.internal.compiler.lookup.ClassScope.checkForInheritedMemberType
s(ClassScope.java:652)
	at 
org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy
(ClassScope.java:924)
	at 
org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectMemberTypes
(ClassScope.java:709)
	at 
org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy
(ClassScope.java:922)
	at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierar
chy(CompilationUnitScope.java:254)
	at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings
(LookupEnvironment.java:249)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.accept
(MatchLocator.java:354)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.accept
(MatchLocator.java:378)
	at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType
(LookupEnvironment.java:131)
	at 
org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage
(PackageBinding.java:178)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage
(Scope.java:2386)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getType
(Scope.java:2131)
	at 
org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding
(SingleTypeReference.java:39)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType
(TypeReference.java:141)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveSuperType
(TypeReference.java:104)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.findSupertype
(ClassScope.java:1074)
	at 
org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperInterfaces
(ClassScope.java:823)
	at 
org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy
(ClassScope.java:914)
	at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierar
chy(CompilationUnitScope.java:254)
	at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings
(LookupEnvironment.java:249)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.accept
(MatchLocator.java:354)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.accept
(MatchLocator.java:378)
	at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType
(LookupEnvironment.java:131)
	at 
org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage
(PackageBinding.java:178)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage
(Scope.java:2386)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getType
(Scope.java:2131)
	at 
org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding
(SingleTypeReference.java:39)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType
(TypeReference.java:141)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveSuperType
(TypeReference.java:104)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.findSupertype
(ClassScope.java:1074)
	at 
org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperclass
(ClassScope.java:741)
	at 
org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy
(ClassScope.java:913)
	at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierar
chy(CompilationUnitScope.java:254)
	at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings
(LookupEnvironment.java:249)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.accept
(MatchLocator.java:354)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.accept
(MatchLocator.java:378)
	at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType
(LookupEnvironment.java:131)
	at 
org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage
(PackageBinding.java:178)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage
(Scope.java:2386)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getType
(Scope.java:2131)
	at 
org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding
(SingleTypeReference.java:39)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType
(TypeReference.java:141)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveSuperType
(TypeReference.java:104)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.findSupertype
(ClassScope.java:1074)
	at 
org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperclass
(ClassScope.java:741)
	at 
org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy
(ClassScope.java:913)
	at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierar
chy(CompilationUnitScope.java:254)
	at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings
(LookupEnvironment.java:249)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.accept
(MatchLocator.java:354)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.accept
(MatchLocator.java:378)
	at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType
(LookupEnvironment.java:131)
	at 
org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage
(PackageBinding.java:178)
	at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport
(CompilationUnitScope.java:403)
	at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleImport
(CompilationUnitScope.java:456)
	at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports
(CompilationUnitScope.java:321)
	at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes
(CompilationUnitScope.java:390)
	at org.eclipse.jdt.internal.core.search.matching.MatchLocator.process
(MatchLocator.java:1442)
	at 
org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches
(MatchLocator.java:939)
	at 
org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches
(MatchLocator.java:980)
	at 
org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches
(MatchLocator.java:1082)
	at 
org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches
(JavaSearchParticipant.java:94)
	at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches
(BasicSearchEngine.java:208)
	at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search
(BasicSearchEngine.java:421)
	at org.eclipse.jdt.core.search.SearchEngine.search
(SearchEngine.java:532)
	at 
org.eclipse.jdt.internal.corext.callhierarchy.CallerMethodWrapper.findChildren
(CallerMethodWrapper.java:75)
	at 
org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.performSearch
(MethodWrapper.java:253)
	at 
org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.doFindChildren
(MethodWrapper.java:194)
	at org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.getCalls
(MethodWrapper.java:76)
	at 
org.eclipse.jdt.internal.ui.callhierarchy.DeferredMethodWrapper.getCalls
(DeferredMethodWrapper.java:62)
	at 
org.eclipse.jdt.internal.ui.callhierarchy.DeferredMethodWrapper.fetchDeferredCh
ildren(DeferredMethodWrapper.java:80)
	at org.eclipse.ui.progress.DeferredTreeContentManager$1.run
(DeferredTreeContentManager.java:192)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76)
Comment 8 Pratik Shah CLA 2005-06-13 17:06:28 EDT
Whoops, I didn't see comment 6.
Comment 9 Kent Johnson CLA 2005-06-13 17:21:40 EDT
Philippe : candidate for RC3

Testcase in 2 files:

abstract class A<- implements I {}

interface I {
	class M extends A {}
}

Perform code assist after the A
Comment 10 Kent Johnson CLA 2005-06-13 17:33:57 EDT
Have a fix, need to check that the hierarchy is connected when source types 
are added late (code assist case).
Comment 11 Philipe Mulet CLA 2005-06-13 17:56:40 EDT
+1 for RC3

Dani: can you pls vote for it as well ? Symptoms are exception in codeassist.
Comment 12 Dani Megert CLA 2005-06-14 03:17:40 EDT
+1 for 3.1 RC3.
Comment 13 Kent Johnson CLA 2005-06-14 13:02:43 EDT
*** Bug 99964 has been marked as a duplicate of this bug. ***
Comment 14 Kent Johnson CLA 2005-06-14 17:40:20 EDT
Added CompletionTests testBug99811
Comment 15 Kent Johnson CLA 2005-06-15 13:01:10 EDT
*** Bug 100234 has been marked as a duplicate of this bug. ***
Comment 16 Jerome Lanneluc CLA 2005-06-16 06:41:36 EDT
*** Bug 100286 has been marked as a duplicate of this bug. ***
Comment 17 Olivier Thomann CLA 2005-06-16 14:58:35 EDT
Verified using N20050616-0010 + JDT/Core HEAD