Bug 241978 - [1.5][compiler] Null Pointer exception parsing code.
Summary: [1.5][compiler] Null Pointer exception parsing code.
Status: VERIFIED DUPLICATE of bug 244762
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.3.2   Edit
Hardware: PC Mac OS X - Carbon (unsup.)
: P3 normal (vote)
Target Milestone: 3.5 M3   Edit
Assignee: Kent Johnson CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-07-24 10:51 EDT by Julia Smith CLA
Modified: 2008-10-27 08:37 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Julia Smith CLA 2008-07-24 10:51:05 EDT
Build ID: Build id: M20080221-1800

Steps To Reproduce:
Significant use of generics and inner classes may be causing the problem. The chance of duplicating the error with a test case seems prohibitive to even think about.

More information:
Severity and Description	Path	Resource	Location	Creation Time	Id
Internal compiler error
java.lang.NullPointerException
	at org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.get(SimpleLookupTable.java:68)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createParameterizedType(LookupEnvironment.java:725)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.java:1128)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethod(BinaryTypeBinding.java:479)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethods(BinaryTypeBinding.java:559)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.cachePartsFrom(BinaryTypeBinding.java:328)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:609)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:588)
	at org.eclipse.jdt.internal.compiler.Compiler.accept(Compiler.java:276)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:102)
	at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:49)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:101)
	at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.resolve(ParameterizedTypeBinding.java:857)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:103)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.java:1120)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethod(BinaryTypeBinding.java:479)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethods(BinaryTypeBinding.java:569)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.cachePartsFrom(BinaryTypeBinding.java:328)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:609)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:588)
	at org.eclipse.jdt.internal.compiler.Compiler.accept(Compiler.java:276)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:128)
	at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:178)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport(CompilationUnitScope.java:449)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleImport(CompilationUnitScope.java:503)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports(CompilationUnitScope.java:359)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:428)
	at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:616)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:392)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:362)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:173)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:299)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:59)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:269)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:177)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:624)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:166)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:197)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:246)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:249)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:302)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:334)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:137)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
	ipTk.test/src/com/darklightechnologies/test/tools/geometry	MatrixTests.java	line 0	1216861050259	579920
Comment 1 Kent Johnson CLA 2008-07-24 11:05:11 EDT
LookupEnvironment.createParameterizedType(line 725) is passed null as the genericType from line 1121 in LookupEnvironment :

ReferenceBinding memberType = parameterizedType.genericType().getMemberType(memberName); // NO check to see if this is null
...
parameterizedType = createParameterizedType(memberType, typeArguments, parameterizedType);
Comment 2 Olivier Thomann CLA 2008-07-24 11:06:45 EDT
Seems to be a case where:
		ReferenceBinding memberType = parameterizedType.genericType().getMemberType(memberName);

returns null.

If you have a case that is causing the problem in a reproducable way, you can provide it to us even if the test case is big.
Comment 3 Philipe Mulet CLA 2008-07-25 08:04:29 EDT
Definitely a scenario which we need to reproduce to assess a good fix.
Comment 4 Kent Johnson CLA 2008-09-04 13:03:06 EDT
Julia - do you know if this problem has happened again or just the one time ?
Comment 5 Kent Johnson CLA 2008-09-09 16:43:02 EDT
Julia - this appears to be the same problem as bug 244762

Somehow we cannot find a member type referenced from a .class file.

Do you know if you're using libraries compiled by other compilers?
Comment 6 Kent Johnson CLA 2008-10-07 14:39:49 EDT
Julia - please reopen if your problem is not fixed with a recent 3.5 stream build

Closing as a duplicate of bug 244762

Stack trace is the same as https://bugs.eclipse.org/bugs/show_bug.cgi?id=244762#c3

*** This bug has been marked as a duplicate of bug 244762 ***
Comment 7 David Audel CLA 2008-10-27 08:37:52 EDT
Verified for 3.5M3.