Bug 71195 - [model] NullPointerException @ org.eclipse.jdt.internal.core.Buffer.removeBufferChangedListener
Summary: [model] NullPointerException @ org.eclipse.jdt.internal.core.Buffer.removeBuf...
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.1 M5   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 71468 76569 78523 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-07-30 21:13 EDT by Leo Kuznetsov CLA
Modified: 2006-01-18 05:23 EST (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 Leo Kuznetsov CLA 2004-07-30 21:13:53 EDT
Happens when clicking on some stack frames in suspended stack trace.
Strangely clicking on next stack frame (from the same source file) usually
works. 

Happens not always on HyperThreaded XP. Looks like racing condition.

eclipse.buildId=I200406251208
java.lang.NullPointerException

at org.eclipse.jdt.internal.core.Buffer.removeBufferChangedListener
(Buffer.java:273)
at org.eclipse.jdt.internal.core.Openable.closeBuffer(Openable.java:94)
at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed
(JavaElement.java:581)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo
(JavaElement.java:309)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo
(JavaElement.java:295)
at org.eclipse.jdt.internal.core.JavaElement.exists(JavaElement.java:162)
at org.eclipse.jdt.internal.core.CompilationUnit.getImports
(CompilationUnit.java:684)
at org.eclipse.jdt.internal.core.SourceTypeElementInfo.getImports
(SourceTypeElementInfo.java:126)
at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert
(SourceTypeConverter.java:111)
at 
org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.buildCompilationUn
it(SourceTypeConverter.java:83)
at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.accept
(CompilationUnitProblemFinder.java:100)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType
(LookupEnvironment.java:113)
at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage
(PackageBinding.java:170)
at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage
(Scope.java:1647)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.findSupertype
(ClassScope.java:820)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperclass
(ClassScope.java:607)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy
(ClassScope.java:700)
at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierar
chy(CompilationUnitScope.java:242)
at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings
(LookupEnvironment.java:177)
at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings
(LookupEnvironment.java:206)
at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.accept
(CompilationUnitProblemFinder.java:110)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType
(LookupEnvironment.java:113)
at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage
(PackageBinding.java:170)
at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage
(Scope.java:1647)
at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:1470)
at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding
(SingleTypeReference.java:43)
at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesFor
(SourceTypeBinding.java:831)
at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.methods
(SourceTypeBinding.java:692)
at 
org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.faultInTypesForField
sAndMethods(SourceTypeBinding.java:347)
at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes
(CompilationUnitScope.java:350)
at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:557)
at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process
(CompilationUnitProblemFinder.java:176)
at org.eclipse.jdt.internal.core.CompilationUnit.buildStructure
(CompilationUnit.java:146)
at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:183)
at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed
(JavaElement.java:572)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo
(JavaElement.java:309)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo
(JavaElement.java:295)
at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:250)
at org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType
(JavaElement.java:264)
at org.eclipse.jdt.internal.core.CompilationUnit.getTypes
(CompilationUnit.java:822)
at org.eclipse.jdt.internal.core.NameLookup.seekTypesInSourcePackage
(NameLookup.java:697)
at org.eclipse.jdt.internal.core.NameLookup.seekTypes(NameLookup.java:554)
at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:384)
at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:355)
at org.eclipse.jdt.internal.core.SearchableEnvironment.find
(SearchableEnvironment.java:78)
at org.eclipse.jdt.internal.core.SearchableEnvironment.findType
(SearchableEnvironment.java:158)
at 
org.eclipse.jdt.core.dom.CompilationUnitResolver$CancelableNameEnvironment.find
Type(CompilationUnitResolver.java:70)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType
(LookupEnvironment.java:101)
at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage
(PackageBinding.java:170)
at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage
(Scope.java:1647)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.findSupertype
(ClassScope.java:820)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperclass
(ClassScope.java:607)
at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy
(ClassScope.java:700)
at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierar
chy(CompilationUnitScope.java:242)
at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings
(LookupEnvironment.java:177)
at org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:307)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve
(CompilationUnitResolver.java:392)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve
(CompilationUnitResolver.java:313)
at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:657)
at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:574)
at 
org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine.parseCompila
tionUnit(ASTEvaluationEngine.java:165)
at 
org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine.getCompiledE
xpression(ASTEvaluationEngine.java:149)
at org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine.evaluate
(ASTEvaluationEngine.java:73)
at 
org.eclipse.jdt.internal.debug.ui.JavaWatchExpressionDelegate$EvaluationRunnabl
e.run(JavaWatchExpressionDelegate.java:144)
at org.eclipse.jdt.internal.debug.core.model.JDIThread$ThreadJob.run
(JDIThread.java:2516)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)
Comment 1 Darin Wright CLA 2004-08-03 11:10:17 EDT
Moving to JCORE for comment.
Comment 2 Kent Johnson CLA 2004-08-05 11:24:47 EDT
*** Bug 71468 has been marked as a duplicate of this bug. ***
Comment 3 Frederic Fusier CLA 2004-10-28 13:08:52 EDT
*** Bug 76569 has been marked as a duplicate of this bug. ***
Comment 4 Jerome Lanneluc CLA 2005-01-04 05:51:43 EST
Synchronized Buffer#addBufferChangedListener and removeBufferChangeListener and
changed notifyChanged to use a local variable and testing this local for null.
Comment 5 Jerome Lanneluc CLA 2005-01-04 06:00:35 EST
*** Bug 78523 has been marked as a duplicate of this bug. ***
Comment 6 David Audel CLA 2005-02-15 06:14:37 EST
Verified in I20050214-0927
Comment 7 Christopher Sahnwaldt CLA 2005-09-27 06:28:13 EDT
java.lang.NullPointerException
	at org.eclipse.jdt.internal.core.Buffer.addBufferChangedListener
(Buffer.java:62)
	at org.eclipse.jdt.internal.core.ClassFile.mapSource(ClassFile.java:642)
	at org.eclipse.jdt.internal.core.ClassFile.openBuffer
(ClassFile.java:540)
	at org.eclipse.jdt.internal.core.Openable.getBuffer(Openable.java:263)
	at org.eclipse.jdt.internal.core.ClassFile.getBuffer(ClassFile.java:263)
	at org.eclipse.jdt.internal.core.ClassFile.getSourceRange
(ClassFile.java:428)
	at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor.verifyInput
(ClassFileEditor.java:708)
	at 
org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor.createPartControl
(ClassFileEditor.java:672)
	at org.eclipse.ui.internal.EditorReference.createPartHelper
(EditorReference.java:585)
	at org.eclipse.ui.internal.EditorReference.createPart
(EditorReference.java:365)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart
(WorkbenchPartReference.java:552)
	at org.eclipse.ui.internal.EditorReference.getEditor
(EditorReference.java:214)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched
(WorkbenchPage.java:2325)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor
(WorkbenchPage.java:2258)
	at org.eclipse.ui.internal.WorkbenchPage.access$9
(WorkbenchPage.java:2250)
	at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2236)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor
(WorkbenchPage.java:2231)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor
(WorkbenchPage.java:2212)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor
(EditorUtility.java:263)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor
(EditorUtility.java:140)
	at org.eclipse.jdt.internal.ui.actions.OpenActionUtil.open
(OpenActionUtil.java:49)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:169)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:141)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun
(SelectionDispatchAction.java:226)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run
(SelectionDispatchAction.java:198)
	at org.eclipse.jdt.internal.ui.javaeditor.JavaElementHyperlink.open
(JavaElementHyperlink.java:55)
	at org.eclipse.jface.text.hyperlink.HyperlinkManager.mouseUp
(HyperlinkManager.java:388)
	at org.eclipse.swt.widgets.TypedListener.handleEvent
(TypedListener.java:137)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3080)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2713)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench
(Workbench.java:367)
	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(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	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 8 Christopher Sahnwaldt CLA 2005-09-27 06:37:35 EDT
Sorry, I'm new to this... here's the full data for my last comment:

Elipse Build id: I20050627-1435 
System: Win XP, hyperthreaded. 

I tried to open (ctrl+click) ThreadLocal$ThreadLocalMap.class
and got the error below. Usually it works. I tried to reproduce
the bug, tried many times - doesn't happen again. Strange...

I have the jadclipse plugin installed, which causes (harmless)
error messages when I ctrl+click open class files. Might have 
something to do with this, but probably not.

java.lang.NullPointerException
	at org.eclipse.jdt.internal.core.Buffer.addBufferChangedListener
(Buffer.java:62)
	at org.eclipse.jdt.internal.core.ClassFile.mapSource(ClassFile.java:642)
	at org.eclipse.jdt.internal.core.ClassFile.openBuffer
(ClassFile.java:540)
	at org.eclipse.jdt.internal.core.Openable.getBuffer(Openable.java:263)
	at org.eclipse.jdt.internal.core.ClassFile.getBuffer(ClassFile.java:263)
	at org.eclipse.jdt.internal.core.ClassFile.getSourceRange
(ClassFile.java:428)
	at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor.verifyInput
(ClassFileEditor.java:708)
	at 
org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor.createPartControl
(ClassFileEditor.java:672)
	at org.eclipse.ui.internal.EditorReference.createPartHelper
(EditorReference.java:585)
	at org.eclipse.ui.internal.EditorReference.createPart
(EditorReference.java:365)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart
(WorkbenchPartReference.java:552)
	at org.eclipse.ui.internal.EditorReference.getEditor
(EditorReference.java:214)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched
(WorkbenchPage.java:2325)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor
(WorkbenchPage.java:2258)
	at org.eclipse.ui.internal.WorkbenchPage.access$9
(WorkbenchPage.java:2250)
	at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2236)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor
(WorkbenchPage.java:2231)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor
(WorkbenchPage.java:2212)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor
(EditorUtility.java:263)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor
(EditorUtility.java:140)
	at org.eclipse.jdt.internal.ui.actions.OpenActionUtil.open
(OpenActionUtil.java:49)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:169)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:141)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun
(SelectionDispatchAction.java:226)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run
(SelectionDispatchAction.java:198)
	at org.eclipse.jdt.internal.ui.javaeditor.JavaElementHyperlink.open
(JavaElementHyperlink.java:55)
	at org.eclipse.jface.text.hyperlink.HyperlinkManager.mouseUp
(HyperlinkManager.java:388)
	at org.eclipse.swt.widgets.TypedListener.handleEvent
(TypedListener.java:137)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3080)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2713)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench
(Workbench.java:367)
	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(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	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 9 Jerome Lanneluc CLA 2005-09-27 06:43:18 EDT
Can you please try removing the jadclipse and see if the problem persists ? If
it does, please open a new bug report with as much information as you can
provide and possibly with steps to reproduce.
Comment 10 Christopher Sahnwaldt CLA 2006-01-18 05:23:52 EST
Haven't seen this bug again, with any version of jadclipse. -> Unreproducible.