Bug 97466 - NPE in SourceTypeConverter
Summary: NPE in SourceTypeConverter
Status: CLOSED 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 RC2   Edit
Assignee: Olivier Thomann CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-05-31 09:34 EDT by David Saff CLA
Modified: 2005-06-10 06:04 EDT (History)
1 user (show)

See Also:


Attachments
The project in question (17.29 KB, application/octet-stream)
2005-05-31 09:35 EDT, David Saff CLA
no flags Details
Apply on HEAD (4.57 KB, patch)
2005-06-01 10:41 EDT, Olivier Thomann CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description David Saff CLA 2005-05-31 09:34:54 EDT
In RC1.

I'm getting an intermittent NPE in SourceTypeConverter as below.  In the
attached project, if I repeatedly move DjTests.ErrorString to a new file and
then undo, every second or third time the error will be logged, titled "Error in
JDT Core during reconcile".  This is always accompanied by a second error titled
"Exception occurred during problem detection:", with essentially the same
backtrace.  Sorry not to have more info.

org.eclipse.jdt.core.JavaModelException[1005]: java.lang.NullPointerException
	at
org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert(SourceTypeConverter.java:164)
	at
org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.buildCompilationUnit(SourceTypeConverter.java:108)
	at
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.accept(CompilationUnitProblemFinder.java:100)
	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:2491)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:2237)
	at
org.eclipse.jdt.internal.compiler.ast.ParameterizedSingleTypeReference.internalResolveType(ParameterizedSingleTypeReference.java:99)
	at
org.eclipse.jdt.internal.compiler.ast.ParameterizedSingleTypeReference.resolveType(ParameterizedSingleTypeReference.java:209)
	at
org.eclipse.jdt.internal.compiler.lookup.Scope.connectTypeVariables(Scope.java:402)
	at
org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy(ClassScope.java:880)
	at
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierarchy(CompilationUnitScope.java:254)
	at
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:195)
	at org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:301)
	at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:540)
	at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:599)
	at
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:165)
	at
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:214)
	at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:79)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:718)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:777)
	at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1081)
	at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:104)
	at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1038)
	at org.eclipse.core.runtime.Platform.run(Platform.java:775)
	at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:82)
	at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:147)
	at
org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86)
	at
org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:94)
	at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:75)
	at org.eclipse.jdt.internal.ui.text.JavaReconciler.process(JavaReconciler.java:318)
	at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:204)
Caused by: java.lang.NullPointerException
	at
org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert(SourceTypeConverter.java:164)
	at
org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.buildCompilationUnit(SourceTypeConverter.java:108)
	at
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.accept(CompilationUnitProblemFinder.java:100)
	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:2491)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:2237)
	at
org.eclipse.jdt.internal.compiler.ast.ParameterizedSingleTypeReference.internalResolveType(ParameterizedSingleTypeReference.java:99)
	at
org.eclipse.jdt.internal.compiler.ast.ParameterizedSingleTypeReference.resolveType(ParameterizedSingleTypeReference.java:209)
	at
org.eclipse.jdt.internal.compiler.lookup.Scope.connectTypeVariables(Scope.java:402)
	at
org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy(ClassScope.java:880)
	at
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierarchy(CompilationUnitScope.java:254)
	at
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:195)
	at org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:301)
	at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:540)
	at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:599)
	at
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:165)
	at
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:214)
	at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:79)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:718)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:777)
	at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1081)
	at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:104)
	at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1038)
	at org.eclipse.core.runtime.Platform.run(Platform.java:775)
	at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:82)
	at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:147)
	at
org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86)
	at
org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:94)
	at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:75)
	at org.eclipse.jdt.internal.ui.text.JavaReconciler.process(JavaReconciler.java:318)
	at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:204)
Comment 1 David Saff CLA 2005-05-31 09:35:16 EDT
Created attachment 22034 [details]
The project in question
Comment 2 Philipe Mulet CLA 2005-05-31 10:08:40 EDT
+1 for RC2
Comment 3 Olivier Thomann CLA 2005-05-31 11:18:35 EDT
I will investigate.
Comment 4 Olivier Thomann CLA 2005-05-31 11:52:04 EDT
How do you perform the Undo operation?
Comment 5 Olivier Thomann CLA 2005-05-31 11:54:50 EDT
Could you please let me know what VM you are using?
Comment 6 Olivier Thomann CLA 2005-05-31 12:24:44 EDT
I tried multiple times to refactor the annotation type to a new file and then
undo it, but I could not reproduce the problem so far.
Comment 7 Olivier Thomann CLA 2005-05-31 13:54:54 EDT
Could you please attach your configuration?
Go to Help>About Eclipse Platform>Configuration Details. And save the
configuration into a file.
Thanks.
Comment 8 Olivier Thomann CLA 2005-06-01 10:41:57 EDT
Created attachment 22150 [details]
Apply on HEAD

Jérôme, could you please double-check this patch?
It is also a patch for bug 90916.
Comment 9 Jerome Lanneluc CLA 2005-06-01 10:44:28 EDT
It looks good
Comment 10 Olivier Thomann CLA 2005-06-01 10:46:32 EDT
Fixed and released in HEAD.
David, could you please let us know if you get it again with this fix?
I could not reproduce, but looking at the code shows some potential concurrency
issues.
Comment 11 David Audel CLA 2005-06-07 13:39:33 EDT
Verified for 3.1RC2 using build N20050607-0010 + JDT/COre HEAD by looking the fix
Comment 12 David Audel CLA 2005-06-10 06:04:00 EDT
Verified for 3.1 RC2 using build I20050610-0010 by looking the fix