Bug 55925 - [reconciling] Outliner shows question mark icon
Summary: [reconciling] Outliner shows question mark icon
Status: RESOLVED DUPLICATE of bug 61719
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows 2000
: P2 major (vote)
Target Milestone: 3.0 M9   Edit
Assignee: JDT-Core-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 55971 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-03-24 11:29 EST by Philipe Mulet CLA
Modified: 2004-05-18 12:26 EDT (History)
2 users (show)

See Also:


Attachments
Outliner showing inconsistent state + question mark icon (53.62 KB, image/jpeg)
2004-03-24 11:29 EST, Philipe Mulet CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Philipe Mulet CLA 2004-03-24 11:29:06 EST
Build 20030424-0800

After performing some incremental changes in editor (re-enabling Junit test 
cases by removing leading '_' character in test name: _test094 --> test094).
The outliner did not properly refresh, and the renamed method got prefixed with 
a question mark icon, and its name did not reflect the new one.
Comment 1 Philipe Mulet CLA 2004-03-24 11:29:42 EST
Created attachment 8836 [details]
Outliner showing inconsistent state + question mark icon
Comment 2 Philipe Mulet CLA 2004-03-24 11:31:58 EST
There was nothing in the log. And I am using multiple windows.
Comment 3 Dani Megert CLA 2004-03-25 06:57:14 EST
*** Bug 55971 has been marked as a duplicate of this bug. ***
Comment 4 Dani Megert CLA 2004-03-25 12:39:40 EST
I cannot reproduce this using I200403250800.
Can you provide some steps? Anything in .log?

Keeping as reminder. Please reopen if you can reproduce on newest builds.
Comment 5 Philipe Mulet CLA 2004-03-26 06:21:18 EST
It just happened to me again today on 20040326.
Still in the middle of editing, I noticed that my outliner did not show me a 
method which I just added (pasting code from elsewhere). 
Must be a timing issue, since it usually works fine. 
Comment 6 Philipe Mulet CLA 2004-03-26 06:21:39 EST
Nothing either in console or .log.
Comment 7 Philipe Mulet CLA 2004-03-26 06:22:28 EST
Workaround is: close outliner, reset perspective (reopens outliner), and 
problem is gone.
Comment 8 Dani Megert CLA 2004-03-26 07:29:01 EST
Were there any changes related to JE deltas? The Java outline page acts on deltas.
Comment 9 Dani Megert CLA 2004-03-26 11:20:15 EST
Philippe's Java Outline page settings are as follows:
- filters
- no sorting
- Go into Top Level Type disabled
Comment 10 Philipe Mulet CLA 2004-03-29 04:57:05 EST
I have *no* filters. BTW we did not change anything in this area in a long time.
Comment 11 Philipe Mulet CLA 2004-03-29 04:58:25 EST
It occurs to me several times a day. This started occurring with 20040323 
builds and better.
Comment 12 Dani Megert CLA 2004-03-29 05:01:21 EST
"filter" comment 9 was a typo.
Comment 13 Philipe Mulet CLA 2004-04-05 19:06:44 EDT
I keep getting this issue 3 to 4 times each day. Each time, I close the 
outliner and reset perspective to cause it to reopen in sync again.

I decided to enable the delta trace, so as to double check we behave as 
expected. Here is below the trace which got dumped when it last occurred.
Looks normal to me. It was a constructor signature change (added one argument).
However, the outliner was still showing the old constructor + new one, with old 
one associated with question mark icon.

FIRING POST_RECONCILE Delta [Thread
[org.eclipse.jdt.internal.ui.text.JavaReconciler,1,main]]:
[Working copy] ParameterizedTypeBinding.java[*]: {CHILDREN | FINE GRAINED}
        ParameterizedTypeBinding[*]: {CHILDREN | FINE GRAINED}
                ParameterizedTypeBinding(ReferenceBinding, TypeBinding[], 
ReferenceBinding, LookupEnvironment)[+]: {}
                ParameterizedTypeBinding(ReferenceBinding, TypeBinding[], 
ReferenceBinding)[-]: {}
Listener 
#1=org.eclipse.jdt.internal.corext.util.AllTypesCache$TypeCacheDeltaListener@910
477 -> 0ms
Listener 
#2=org.eclipse.pde.internal.core.SearchablePluginsManager$Listener@c41a30 -> 0ms
Listener 
#3=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@5acf13
 -> 0ms
Listener 
#4=org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider@1d1282
d -> 0ms
Listener 
#5=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListener
@a4b9da -> 0ms
Listener 
#6=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@13c6a8
b -> 0ms
Listener 
#7=org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider@176f76
4 -> 30ms
Listener 
#8=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListener
@16c006e -> 0ms
Listener 
#9=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListener
@1621a25 -> 0ms
Listener #10=org.eclipse.jdt.internal.debug.ui.JavaModelListener@2943e5 -> 0ms
Listener 
#11=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListene
r@18423fb -> 0ms
Listener 
#12=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@565c8
5 -> 0ms
Listener 
#13=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListene
r@1d45754 -> 0ms
Listener 
#14=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListene
r@4d03e5 -> 10ms
Listener 
#15=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@3ac82
9 -> 0ms
Listener 
#16=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListene
r@12b0412 -> 0ms
Listener 
#17=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@170dd
23 -> 0ms
Listener 
#18=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListene
r@c64144 -> 0ms
Listener 
#19=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@1e701
d0 -> 0ms
Listener 
#20=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListene
r@1282abf -> 0ms
Listener 
#21=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@9b1b4
5 -> 0ms
Listener 
#22=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@7ac95
5 -> 0ms
Listener 
#23=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@1d89f
55 -> 0ms
Listener 
#24=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@315e4
2 -> 0ms
Listener 
#25=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListene
r@1233f27 -> 0ms
Listener 
#26=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@105af
64 -> 0ms
Listener 
#27=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListene
r@3ddc18 -> 0ms
Listener 
#28=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@16b16
cd -> 0ms
Listener 
#29=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@1460f
e8 -> 0ms
Listener 
#30=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListene
r@be6ad9 -> 0ms
Listener 
#31=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@18288
26 -> 0ms
Listener 
#32=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListene
r@b89f92 -> 10ms
Listener 
#33=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@13992
e3 -> 0ms
Listener 
#34=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@1428a
84 -> 0ms
Listener #35=Focus: ProgressProvider [in ProgressProvider.class [in 
org.eclipse.core.runtime.jobs [in runtime.jar [in org.eclipse.core.runtime]]]]
Super types:
  Object [in Object.class [in java.lang [in D:/jdk1.4.1/jre/lib/rt.jar [in 
org.eclipse.jdt.core]]]]
Sub types:
 -> 0ms
Listener #36=Focus: SignatureWrapper [in [Working copy] SignatureWrapper.java 
[in org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
Super types:
  Object [in Object.class [in java.lang [in D:/jdk1.4.1/jre/lib/rt.jar [in 
org.eclipse.jdt.core]]]]
Sub types:
 -> 0ms
Listener #37=Focus: LookupEnvironment [in [Working copy] LookupEnvironment.java 
[in org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
Super types:
  BaseTypes [in BaseTypes.java [in org.eclipse.jdt.internal.compiler.lookup [in 
compiler [in org.eclipse.jdt.core]]]]
  ProblemReasons [in ProblemReasons.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
  TypeConstants [in TypeConstants.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
  Object [in Object.class [in java.lang [in D:/jdk1.4.1/jre/lib/rt.jar [in 
org.eclipse.jdt.core]]]]
Sub types:
 -> 0ms
Listener #38=Focus: ReferenceBinding [in [Working copy] ReferenceBinding.java 
[in org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
Super types:
  IDependent [in IDependent.java [in org.eclipse.jdt.internal.compiler.env [in 
compiler [in org.eclipse.jdt.core]]]]
  TypeBinding [in TypeBinding.java [in org.eclipse.jdt.internal.compiler.lookup 
[in compiler [in org.eclipse.jdt.core]]]]
    BaseTypes [in BaseTypes.java [in org.eclipse.jdt.internal.compiler.lookup 
[in compiler [in org.eclipse.jdt.core]]]]
    TagBits [in TagBits.java [in org.eclipse.jdt.internal.compiler.lookup [in 
compiler [in org.eclipse.jdt.core]]]]
    TypeConstants [in TypeConstants.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
    TypeIds [in TypeIds.java [in org.eclipse.jdt.internal.compiler.lookup [in 
compiler [in org.eclipse.jdt.core]]]]
    Binding [in Binding.java [in org.eclipse.jdt.internal.compiler.lookup [in 
compiler [in org.eclipse.jdt.core]]]]
      BindingIds [in BindingIds.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
      CompilerModifiers [in CompilerModifiers.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
        ClassFileConstants [in ClassFileConstants.java [in 
org.eclipse.jdt.internal.compiler.classfmt [in compiler [in 
org.eclipse.jdt.core]]]]
          IConstants [in IConstants.java [in 
org.eclipse.jdt.internal.compiler.env [in compiler [in org.eclipse.jdt.core]]]]
      ProblemReasons [in ProblemReasons.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
      Object [in Object.class [in java.lang [in D:/jdk1.4.1/jre/lib/rt.jar [in 
org.eclipse.jdt.core]]]]
Sub types:
 -> 0ms
Listener #39=Focus: Scope [in [Working copy] Scope.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
Super types:
  BaseTypes [in BaseTypes.java [in org.eclipse.jdt.internal.compiler.lookup [in 
compiler [in org.eclipse.jdt.core]]]]
  BindingIds [in BindingIds.java [in org.eclipse.jdt.internal.compiler.lookup 
[in compiler [in org.eclipse.jdt.core]]]]
  CompilerModifiers [in CompilerModifiers.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
    ClassFileConstants [in ClassFileConstants.java [in 
org.eclipse.jdt.internal.compiler.classfmt [in compiler [in 
org.eclipse.jdt.core]]]]
      IConstants [in IConstants.java [in org.eclipse.jdt.internal.compiler.env 
[in compiler [in org.eclipse.jdt.core]]]]
  ProblemReasons [in ProblemReasons.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
  TagBits [in TagBits.java [in org.eclipse.jdt.internal.compiler.lookup [in 
compiler [in org.eclipse.jdt.core]]]]
  TypeConstants [in TypeConstants.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
  TypeIds [in TypeIds.java [in org.eclipse.jdt.internal.compiler.lookup [in 
compiler [in org.eclipse.jdt.core]]]]
  Object [in Object.class [in java.lang [in D:/jdk1.4.1/jre/lib/rt.jar [in 
org.eclipse.jdt.core]]]]
Sub types:
 -> 0ms
Listener 
#40=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@1f5d1
89 -> 0ms
Listener 
#41=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListene
r@18f88bc -> 0ms
Listener #42=Focus: GenericTypeTest [in [Working copy] GenericTypeTest.java [in 
org.eclipse.jdt.core.tests.compiler.regression [in src [in 
org.eclipse.jdt.core.tests.compiler]]]]
Super types:
  AbstractRegressionTest [in AbstractRegressionTest.java [in 
org.eclipse.jdt.core.tests.compiler.regression [in src [in 
org.eclipse.jdt.core.tests.compiler]]]]
    StopableTestCase [in StopableTestCase.java [in 
org.eclipse.jdt.core.tests.junit.extension [in src [in 
org.eclipse.jdt.core.tests.compiler]]]]
    AbstractCompilerTest [in AbstractCompilerTest.java [in 
org.eclipse.jdt.core.tests.util [in src [in 
org.eclipse.jdt.core.tests.compiler]]]]
      TestCase [in TestCase.java [in org.eclipse.jdt.core.tests.junit.extension 
[in src [in org.eclipse.jdt.core.tests.compiler]]]]
        TestCase [in TestCase.class [in junit.framework [in junit.jar [in 
org.junit]]]]
          Test [in Test.class [in junit.framework [in junit.jar [in 
org.junit]]]]
          Assert [in Assert.class [in junit.framework [in junit.jar [in 
org.junit]]]]
            Object [in Object.class [in java.lang [in 
D:/jdk1.4.1/jre/lib/rt.jar [in org.eclipse.jdt.core]]]]
Sub types:
 -> 0ms
Listener #43=Focus: ParameterizedTypeBinding [in [Working copy] 
ParameterizedTypeBinding.java [in org.eclipse.jdt.internal.compiler.lookup [in 
compiler [in org.eclipse.jdt.core]]]]
Super types:
  ReferenceBinding [in [Working copy] ReferenceBinding.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
    IDependent [in IDependent.java [in org.eclipse.jdt.internal.compiler.env 
[in compiler [in org.eclipse.jdt.core]]]]
    TypeBinding [in TypeBinding.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
      BaseTypes [in BaseTypes.java [in org.eclipse.jdt.internal.compiler.lookup 
[in compiler [in org.eclipse.jdt.core]]]]
      TagBits [in TagBits.java [in org.eclipse.jdt.internal.compiler.lookup [in 
compiler [in org.eclipse.jdt.core]]]]
      TypeConstants [in TypeConstants.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
      TypeIds [in TypeIds.java [in org.eclipse.jdt.internal.compiler.lookup [in 
compiler [in org.eclipse.jdt.core]]]]
      Binding [in Binding.java [in org.eclipse.jdt.internal.compiler.lookup [in 
compiler [in org.eclipse.jdt.core]]]]
        BindingIds [in BindingIds.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
        CompilerModifiers [in CompilerModifiers.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
          ClassFileConstants [in ClassFileConstants.java [in 
org.eclipse.jdt.internal.compiler.classfmt [in compiler [in 
org.eclipse.jdt.core]]]]
            IConstants [in IConstants.java [in 
org.eclipse.jdt.internal.compiler.env [in compiler [in org.eclipse.jdt.core]]]]
        ProblemReasons [in ProblemReasons.java [in 
org.eclipse.jdt.internal.compiler.lookup [in compiler [in 
org.eclipse.jdt.core]]]]
        Object [in Object.class [in java.lang [in D:/jdk1.4.1/jre/lib/rt.jar 
[in org.eclipse.jdt.core]]]]
Sub types:
 -> 0ms
Listener 
#44=org.eclipse.jdt.internal.ui.text.JavaReconciler$ElementChangedListener@13eef
f0 -> 0ms
Listener 
#45=org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$ElementChangedListene
r@fa9d2e -> 0ms
FIRING POST_CHANGE Delta [Thread[main,6,main]]:
<NONE>
FIRING POST_RECONCILE Delta [Thread[main,6,main]]:
<NONE>
Comment 14 Philipe Mulet CLA 2004-04-08 19:23:39 EDT
Bug still occurs in 20040407.
Comment 15 Dani Megert CLA 2004-04-13 03:46:16 EDT
Might be related to bug 57076
Comment 16 Philipe Mulet CLA 2004-04-14 10:44:57 EDT
Bug still occurs in 20040413.
Comment 17 Philipe Mulet CLA 2004-04-27 20:06:08 EDT
Still occurs in 20040427. Seems to occur more easily when editing large files, 
e.g. NegativeTest in compiler test suites.
Comment 18 Dani Megert CLA 2004-04-28 08:11:10 EDT
Philippe, I cannot consistently reproduce (especially when debugging) this but
whenver I have that state, closing and reopening the Outline (leaving the editor
open) does not fix it - only closing the editor fixes it hence this looks like
the working copy is not correct. Which would be a J Core problem.
Comment 19 Philipe Mulet CLA 2004-05-13 07:26:11 EDT
We just fixed bug 61719, where we were issuing a bogus delta, which would fool 
the outliner. In this case though the delta printed in console was obviously 
wrong. The trace in this PR shows that the delta was right, but outline still 
wrong.

In this case, when closing/reopening outliner alone, it was enough to address 
the problem. Closing/reopening editor as a workaround was likely due to bug 
61719.

I suspect there are 2 bugs there, one in JavaModel, which we just fixed; and 
potentially one in your land. The symptoms were so similar that they could 
easily be mistaken.
Comment 20 Philipe Mulet CLA 2004-05-18 12:26:22 EDT
Readopting, as our fix seems to have solved all known issues.
Comment 21 Philipe Mulet CLA 2004-05-18 12:26:51 EDT
Closing as dup.

*** This bug has been marked as a duplicate of 61719 ***