Community
Participate
Working Groups
I got this exception using code completion: java.lang.NullPointerException at org.eclipse.jdt.internal.codeassist.complete.CompletionOnQualifiedAllocationExpression.resolveType(CompletionOnQualifiedAllocationExpression.java:45) at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve(LocalDeclaration.java:186) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:444) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:191) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:403) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1096) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1184) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:535) at org.eclipse.jdt.internal.codeassist.CompletionEngine.complete(CompletionEngine.java:2538) at org.eclipse.jdt.internal.core.Openable.codeComplete(Openable.java:129) at org.eclipse.jdt.internal.core.CompilationUnit.codeComplete(CompilationUnit.java:344) at org.eclipse.jdt.internal.core.CompilationUnit.codeComplete(CompilationUnit.java:337) at org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputer.internalComputeCompletionProposals(JavaCompletionProposalComputer.java:190) at org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputer.addContextInformations(JavaCompletionProposalComputer.java:113) at org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputer.computeContextInformation(JavaCompletionProposalComputer.java:144) at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeContextInformation(CompletionProposalComputerDescriptor.java:363) at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeContextInformation(CompletionProposalCategory.java:289) at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectContextInformation(ContentAssistProcessor.java:337) at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeContextInformation(ContentAssistProcessor.java:319) at org.eclipse.jface.text.contentassist.ContentAssistant.computeContextInformation(ContentAssistant.java:1856) at org.eclipse.jface.text.contentassist.ContentAssistSubjectControlAdapter.computeContextInformation(ContentAssistSubjectControlAdapter.java:388) at org.eclipse.jface.text.contentassist.ContextInformationPopup.computeContextInformation(ContextInformationPopup.java:390) at org.eclipse.jface.text.contentassist.ContextInformationPopup.access$1(ContextInformationPopup.java:389) at org.eclipse.jface.text.contentassist.ContextInformationPopup$1.run(ContextInformationPopup.java:187) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.text.contentassist.ContextInformationPopup.showContextProposals(ContextInformationPopup.java:182) at org.eclipse.jface.text.contentassist.ContentAssistant.showContextInformation(ContentAssistant.java:1710) at org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:810) at org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1547) at org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer.doOperation(JavaSourceViewer.java:186) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:195) at org.eclipse.jface.text.link.LinkedModeUI.triggerContextInfo(LinkedModeUI.java:818) at org.eclipse.jface.text.link.LinkedModeUI.switchPosition(LinkedModeUI.java:867) at org.eclipse.jface.text.link.LinkedModeUI.next(LinkedModeUI.java:800) I'll try to get reproducable steps. I am using I20080903-1200.
Steps to reproduce: 1) Check out the projects org.eclipse.pde.api.tools and org.eclipse.pde.api.tools.tests from CVS 2) Go to org.eclipse.pde.api.tools.builder.tests.compatibility.ClassCompatibilityHierarchyTests 3) Apply the patch attached to this bug 4) Go to line 174: getChangedProblemId(IDelta.SUPERCLASS) 5) Select "ChangedProblemId(" and do code assist. 6) Select RemovedProblemId and the NPE should occur. Let me know if you have any problem to reproduce.
Created attachment 111750 [details] Patch to apply
Created attachment 115571 [details] Proposed fix
Hi, I'm hitting this on I20081007-1600. Please invoke code completion inside the parentheses of the getTime() invocation in the getRange() method to reproduce the NPE. I saw this problem in a bigger piece of code I was working on, this is a trimmed down version. I see two different NPEs in my logs although they both point to CompletionOnQualifiedAllocationExpression. public class Test { public static long[] getRange() { return new long[] { getTime() }; } private static long getTime() { return -1; } } java.lang.NullPointerException at org.eclipse.jdt.internal.codeassist.complete.CompletionOnQualifiedAllocationExpression.resolveType(CompletionOnQualifiedAllocationExpression.java:45) at org.eclipse.jdt.internal.compiler.ast.Expression.resolve(Expression.java:913) at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:101) at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:101) at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:101) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:447) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:192) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:406) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1115) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1203) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:540) at org.eclipse.jdt.internal.codeassist.CompletionEngine.complete(CompletionEngine.java:2538) at org.eclipse.jdt.internal.core.Openable.codeComplete(Openable.java:129) java.lang.NullPointerException at org.eclipse.jdt.internal.codeassist.complete.CompletionOnQualifiedAllocationExpression.resolveType(CompletionOnQualifiedAllocationExpression.java:45) at org.eclipse.jdt.internal.compiler.ast.Expression.resolve(Expression.java:913) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:447) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:192) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:406) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1115) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1203) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:540) at org.eclipse.jdt.internal.codeassist.CompletionEngine.complete(CompletionEngine.java:2538)
Released for 3.5M3. Test added CompletionTests#testArrayInitializer1()
Verified for 3.5M3 using I20081026-2000