Bug 86775 - [1.5][compiler] Infer Generic Types Arguments throws NPE
Summary: [1.5][compiler] Infer Generic Types Arguments throws NPE
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.1   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.1 M6   Edit
Assignee: Philipe Mulet CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-02-27 03:55 EST by Stefan Matthias Aust CLA
Modified: 2005-03-31 09:40 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Matthias Aust CLA 2005-02-27 03:55:02 EST
I'm using I20050218-1600.

I can't offer a short testcase but I was converting JavaSpider, the error occurs
if you try to infer the type args for org.eclipse.contribution.spider.BindingFigure.

Stacktrace:

Root exception:
java.lang.NullPointerException
	at org.eclipse.jdt.internal.compiler.ast.Argument.isVarArgs(Argument.java:76)
	at
org.eclipse.jdt.internal.compiler.lookup.MethodScope.createMethod(MethodScope.java:292)
	at
org.eclipse.jdt.internal.compiler.lookup.ClassScope.buildMethods(ClassScope.java:295)
	at
org.eclipse.jdt.internal.compiler.lookup.ClassScope.buildFieldsAndMethods(ClassScope.java:147)
	at
org.eclipse.jdt.internal.compiler.lookup.ClassScope.buildAnonymousTypeBinding(ClassScope.java:52)
	at
org.eclipse.jdt.internal.compiler.lookup.BlockScope.addAnonymousType(BlockScope.java:75)
	at
org.eclipse.jdt.internal.compiler.ast.QualifiedAllocationExpression.resolveType(QualifiedAllocationExpression.java:335)
	at
org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:289)
	at org.eclipse.jdt.internal.compiler.ast.Expression.resolve(Expression.java:779)
	at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:101)
	at org.eclipse.jdt.internal.compiler.ast.IfStatement.resolve(IfStatement.java:225)
	at
org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:411)
	at
org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:160)
	at
org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:389)
	at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1019)
	at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1068)
	at
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:281)
	at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:510)
	at
org.eclipse.jdt.core.dom.CompilationUnitResolver.process(CompilationUnitResolver.java:290)
	at
org.eclipse.jdt.internal.core.util.BindingKeyResolver.consumeTopLevelType(BindingKeyResolver.java:211)
	at
org.eclipse.jdt.internal.core.util.BindingKeyParser.parse(BindingKeyParser.java:433)
	at
org.eclipse.jdt.internal.core.util.BindingKeyParser.parse(BindingKeyParser.java:419)
	at
org.eclipse.jdt.internal.core.util.BindingKeyResolver.getCompilerBinding(BindingKeyResolver.java:317)
	at
org.eclipse.jdt.core.dom.CompilationUnitResolver.reportBinding(CompilationUnitResolver.java:691)
	at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:646)
	at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:436)
	at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java:651)
	at
org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeEnvironment.createTypeBindings(TypeEnvironment.java:104)
	at
org.eclipse.jdt.internal.corext.refactoring.generics.InferTypeArgumentsRefactoring.rewriteConstraintVariable(InferTypeArgumentsRefactoring.java:306)
	at
org.eclipse.jdt.internal.corext.refactoring.generics.InferTypeArgumentsRefactoring.rewriteDeclarations(InferTypeArgumentsRefactoring.java:221)
	at
org.eclipse.jdt.internal.corext.refactoring.generics.InferTypeArgumentsRefactoring.checkFinalConditions(InferTypeArgumentsRefactoring.java:157)
	at
org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:84)
	at
org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:114)
	at
org.eclipse.ltk.core.refactoring.PerformChangeOperation.run(PerformChangeOperation.java:188)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1702)
	at
org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:86)
	at
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:111)
Comment 1 Philipe Mulet CLA 2005-02-28 12:13:36 EST
Would indicate an argument with no type reference.
Comment 2 Philipe Mulet CLA 2005-02-28 12:17:49 EST
Had forgotten some null check from code review.
Type can be null for some generated arguments (like abstract methods).
Fixed. No test case added.

Stefan - pls confirm using our latest that the problem got corrected (should be
released into I20050301)
Comment 3 David Audel CLA 2005-03-31 09:40:53 EST
Verified in I20050330-0500