Community
Participate
Working Groups
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]]:
The outliner was still showing 2 instances of #testCycle5() the second decorated with question mark (meaning it is no longer reachable in model).
Must be a timing issue, as this doesn't always occur.
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()
*** Bug 55925 has been marked as a duplicate of this bug. ***
Verified for 3.0 M9 with build I200405190010.