Bug 8685

Summary: Exception while deleting a method
Product: [Eclipse Project] JDT Reporter: Dirk Baeumer <dirk_baeumer>
Component: CoreAssignee: Jerome Lanneluc <jerome_lanneluc>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: P3    
Version: 2.0   
Target Milestone: 2.0 M3   
Hardware: PC   
OS: Windows 2000   
Whiteboard:

Description Dirk Baeumer CLA 2002-01-29 11:39:18 EST
Smoke for build 20020129

- insert fCount into TestCase.java
- switch to segemented view
- select fCount in Outliner
- Generate Setter/Getter
- select getCount and setCount in Outliner
- activate delete from context menu
observe: getCount is gone, but setCount is still present
- select setCount
you get the following exception in the log


Log: Tue Jan 29 17:41:14 CET 2002
4 org.eclipse.jdt.ui 1 Internal Error
Java Model Exception: Java Model Status [setCount does not exist.]
	at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException
(JavaElement.java:452)
	at org.eclipse.jdt.internal.core.JavaElement.openHierarchy
(JavaElement.java:481)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo
(JavaElement.java:269)
	at org.eclipse.jdt.internal.core.SourceMethod.isConstructor
(SourceMethod.java:133)
	at 
org.eclipse.jdt.internal.ui.viewsupport.JavaElementLabels.getMethodLabel
(JavaElementLabels.java:339)
	at 
org.eclipse.jdt.internal.ui.viewsupport.JavaElementLabels.getElementLabel
(JavaElementLabels.java:292)
	at 
org.eclipse.jdt.internal.ui.viewsupport.JavaElementLabels.getElementLabel
(JavaElementLabels.java:272)
	at 
org.eclipse.jdt.internal.ui.viewsupport.StatusBarUpdater.formatJavaElementMessag
e(StatusBarUpdater.java:76)
	at 
org.eclipse.jdt.internal.ui.viewsupport.StatusBarUpdater.formatMessage
(StatusBarUpdater.java:66)
	at 
org.eclipse.jdt.internal.ui.viewsupport.StatusBarUpdater.selectionChanged
(StatusBarUpdater.java:51)
	at org.eclipse.jface.viewers.Viewer.fireSelectionChanged
(Viewer.java:147)
	at org.eclipse.jface.viewers.StructuredViewer.updateSelection
(StructuredViewer.java:999)
	at org.eclipse.jface.viewers.StructuredViewer.handleSelect
(StructuredViewer.java:466)
	at org.eclipse.jface.viewers.AbstractTreeViewer$1.widgetSelected
(AbstractTreeViewer.java:624)
	at org.eclipse.swt.widgets.TypedListener.handleEvent
(TypedListener.java:85)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:74)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:637)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1413)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1205)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:852)
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:835)
	at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:878)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:321)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:151)
	at org.eclipse.core.launcher.Main.run(Main.java:502)
	at org.eclipse.core.launcher.Main.main(Main.java:362)
	4 org.eclipse.jdt.core 969 setCount does not exist.
Log: Tue Jan 29 17:41:14 CET 2002
4 org.eclipse.jdt.ui 1 Internal Error
Java Model Exception: Java Model Status [setCount does not exist.]
	at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException
(JavaElement.java:452)
	at org.eclipse.jdt.internal.core.JavaElement.openHierarchy
(JavaElement.java:481)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo
(JavaElement.java:269)
	at org.eclipse.jdt.internal.core.Member.getFlags(Member.java:83)
	at 
org.eclipse.jdt.internal.corext.refactoring.rename.RenameMethodRefactoring.creat
eInstance(RenameMethodRefactoring.java:71)
	at 
org.eclipse.jdt.internal.ui.reorg.RefactoringSupportFactory$7.createRefactoring
(RefactoringSupportFactory.java:189)
	at 
org.eclipse.jdt.internal.ui.reorg.RefactoringSupportFactory$RenameSupport.canRen
ame(RefactoringSupportFactory.java:47)
	at org.eclipse.jdt.internal.ui.reorg.RenameAction.canOperateOn
(RenameAction.java:54)
	at 
org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringAction.update
(RefactoringAction.java:57)
	at 
org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringActionDelegate.findAc
tion(RefactoringActionDelegate.java:105)
	at 
org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringActionDelegate.handle
StructuredSelection(RefactoringActionDelegate.java:55)
	at 
org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringActionDelegate.select
ionChanged(RefactoringActionDelegate.java:81)
	at org.eclipse.ui.internal.PluginAction.refreshEnablement
(PluginAction.java:170)
	at org.eclipse.ui.internal.PluginAction.selectionChanged
(PluginAction.java:226)
	at org.eclipse.ui.internal.PluginAction.selectionChanged
(PluginAction.java:246)
	at org.eclipse.ui.internal.SelectionService$2.run
(SelectionService.java:55)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:821)
	at org.eclipse.core.runtime.Platform.run(Platform.java:395)
	at org.eclipse.ui.internal.SelectionService.fireSelection
(SelectionService.java:53)
	at org.eclipse.ui.internal.SelectionService$1.selectionChanged
(SelectionService.java:24)
	at org.eclipse.ui.part.PageBookView$SelectionProvider.selectionChanged
(PageBookView.java:227)
	at org.eclipse.ui.part.PageBookView.pageSelectionChanged
(PageBookView.java:613)
	at org.eclipse.ui.part.PageBookView.access$2(PageBookView.java:609)
	at org.eclipse.ui.part.PageBookView$2.selectionChanged
(PageBookView.java:133)
	at org.eclipse.jface.viewers.Viewer.fireSelectionChanged
(Viewer.java:147)
	at org.eclipse.jface.viewers.StructuredViewer.updateSelection
(StructuredViewer.java:999)
	at org.eclipse.jface.viewers.StructuredViewer.handleSelect
(StructuredViewer.java:466)
	at org.eclipse.jface.viewers.AbstractTreeViewer$1.widgetSelected
(AbstractTreeViewer.java:624)
	at org.eclipse.swt.widgets.TypedListener.handleEvent
(TypedListener.java:85)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:74)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:637)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1413)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1205)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:852)
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:835)
	at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:878)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:321)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:151)
	at org.eclipse.core.launcher.Main.run(Main.java:502)
	at org.eclipse.core.launcher.Main.main(Main.java:362)
	4 org.eclipse.jdt.core 969 setCount does not exist.
Comment 1 Erich Gamma CLA 2002-01-29 12:57:16 EST
suspect an incorrect delta when deleting two members. 
moving to Jdt core for investigation.

Comment 2 Philipe Mulet CLA 2002-01-29 18:23:00 EST
Is this in a classfile ? Suspecting this could be related to delta notification 
in classfiles when proj==src==bin...
Comment 3 Dirk Baeumer CLA 2002-01-30 03:38:52 EST
No, this is the TestCase class from JUnit. I changed the source and then 
deleted two methods
Comment 4 Jerome Lanneluc CLA 2002-02-06 08:44:48 EST
Problem was that the previous ADDED delta (i.e. for the addition of setCount) 
was not being fired and this conflicted with the DELETED delta for this same 
method.
The ADDED delta was not being fired because the CreateElementInCUOperation 
assumed that saving the buffer of a cu would trigger a resource delta. This 
assumption was not true if the cu was a working copy.
Fixed CreateElementInCUOperation and DeleteElementsOperation.