Bug 61719 - Incorrect fine grain delta after method copy-rename
Summary: Incorrect fine grain delta after method copy-rename
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows 2000
: P2 normal (vote)
Target Milestone: 3.0 M9   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 55925 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-05-11 08:49 EDT by Philipe Mulet CLA
Modified: 2004-05-19 05:57 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philipe Mulet CLA 2004-05-11 08:49:16 EDT
Build 20040506

After a method copy, then rename, the fine-grain delta got wrong. Consequently 
the outliner got fooled afterwards.

I was editing MultiProjectTests.java. Copied the method #testCycle5, and paste 
it right behind it. Then I renamed it into: #testMissingRequiredBinaries.

Here are the deltas I got, observe that the method rename never got notified.

FIRING POST_CHANGE Delta [Thread[main,6,main]]:
Java Model[*]: {CHILDREN}
        org.eclipse.jdt.core.tests.builder[*]: {CHILDREN}
                src[*]: {CHILDREN}
                        org.eclipse.jdt.core.tests.builder[*]: {CHILDREN}
                                [Working copy] MultiProjectTests.java[*]: 
{PRIMARY WORKING COPY}
FIRING POST_RECONCILE Delta [Thread[main,6,main]]:
<NONE>
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CHILDREN | FINE GRAINED}
        MultiProjectTests[*]: {CHILDREN | FINE GRAINED}
                testCycle5()[+]: {}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[+]: {CONTENT}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread[main,6,main]]:
Java Model[*]: {CHILDREN}
        org.eclipse.jdt.core.tests.builder[*]: {CHILDREN}
                src[*]: {CHILDREN}
                        org.eclipse.jdt.core.tests.builder[*]: {CHILDREN}
                                [Working copy] MultiProjectTests.java[*]: 
{PRIMARY RESOURCE}
FIRING POST_RECONCILE Delta [Thread[main,6,main]]:
<NONE>
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[+]: {CONTENT}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[+]: {CONTENT}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread[main,6,main]]:
Java Model[*]: {CHILDREN}
        org.eclipse.jdt.core.tests.builder[*]: {CHILDREN}
                src[*]: {CHILDREN}
                        org.eclipse.jdt.core.tests.builder[*]: {CHILDREN}
                                [Working copy] MultiProjectTests.java[*]: 
{PRIMARY RESOURCE}
FIRING POST_RECONCILE Delta [Thread[main,6,main]]:
<NONE>
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] MultiProjectTests.java[*]: {CONTENT | FINE GRAINED}
--------------------------------------------------------------------------------
-----------------------------------
FIRING POST_CHANGE Delta [Thread[main,6,main]]:
Java Model[*]: {CHILDREN}
        org.eclipse.jdt.core.tests.builder[*]: {CHILDREN}
                src[*]: {CHILDREN}
                        org.eclipse.jdt.core.tests.builder[*]: {CHILDREN}
                                [Working copy] MultiProjectTests.java[*]: 
{PRIMARY RESOURCE}
FIRING POST_RECONCILE Delta [Thread[main,6,main]]:
Comment 1 Philipe Mulet CLA 2004-05-11 08:50:24 EDT
The outliner was still showing 2 instances of #testCycle5() the second 
decorated with question mark (meaning it is no longer reachable in model).
Comment 2 Philipe Mulet CLA 2004-05-11 08:50:56 EDT
Must be a timing issue, as this doesn't always occur. 
Comment 3 Jerome Lanneluc CLA 2004-05-11 18:22:50 EDT
While editing a working copy, the reconciler thread starts a reconcile 
operation that makes the working copy consistent. This operation is cancelled, 
but makeConsistent(...) leaves the working copy closed. Subsequent deltas are 
wrong.

Changed makeConsistent(...) to not close the working copy. The infos are now 
removed in JavaModelManager.putInfos(...).

Added regression test WorkingCopyTests.testCancelMakeConsistent()
Comment 4 Philipe Mulet CLA 2004-05-18 12:26:52 EDT
*** Bug 55925 has been marked as a duplicate of this bug. ***
Comment 5 Frederic Fusier CLA 2004-05-19 05:57:11 EDT
Verified for 3.0 M9 with build I200405190010.