Bug 5972

Summary: Incremental builder (new) recompiling dependents of Parser for no apparent reason
Product: [Eclipse Project] JDT Reporter: Philipe Mulet <philippe_mulet>
Component: CoreAssignee: Kent Johnson <kent_johnson>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P1    
Version: 2.0   
Target Milestone: 2.0 M1   
Hardware: PC   
OS: Windows 2000   
Whiteboard:

Description Philipe Mulet CLA 2001-11-15 11:49:58 EST
Build 20011114 + Jdtcore from HEAD (new builder enabled)

Steps:
1. self-hosting mode with new builder enabled, builder tracing on.
2. Force a full build of all projects
3. Open on Parser.java (the one defined inside jdtcore)
4. Find method Parser.pushOnIntStack(...)
5. Edit its body to insert an extra statement:
     e.g. System.out.println();
6. Hit ctrl-B, it is recompiling all dependent Parsers .... and it should 
definitely not, given there is no structural change.

The trace below seems to indicate that it thought there was some:

INCREMENTAL build of: org.eclipse.jdt.core
Compile this changed source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/Parser.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/Parser.java
Type has structural changes org/eclipse/jdt/internal/compiler/parser/Parser
  adding dependents of Parser in org/eclipse/jdt/internal/compiler/parser
Writing class file Parser.class
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/model/org/ecli
pse/jdt/internal/core/CompilationUnit.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/model/org/ecli
pse/jdt/internal/core/SourceMapper.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/model/org/ecli
pse/jdt/internal/core/BinaryMethod.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/ast/AbstractMethodDeclaration.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/eval/org/eclip
se/jdt/internal/eval/CodeSnippetCompiler.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/eval/org/eclip
se/jdt/internal/eval/CodeSnippetParser.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/codeassist/org
/eclipse/jdt/internal/codeassist/SelectionEngine.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/model/org/ecli
pse/jdt/internal/core/jdom/SimpleDOMBuilder.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/codeassist/org
/eclipse/jdt/internal/codeassist/impl/Engine.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/codeassist/org
/eclipse/jdt/internal/codeassist/CompletionEngine.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/codeassist/org
/eclipse/jdt/internal/codeassist/impl/AssistParser.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/RecoveredInitializer.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/problem/ProblemReporter.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/RecoveredElement.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/codeassist/org
/eclipse/jdt/internal/codeassist/select/SelectionParser.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/search/org/ecl
ipse/jdt/internal/core/search/matching/MatchLocatorParser.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/ast/TypeDeclaration.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/search/org/ecl
ipse/jdt/internal/core/search/matching/PotentialMatch.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/ast/ConstructorDeclaration.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/formatter/org/
eclipse/jdt/internal/formatter/CodeFormatter.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/ast/MethodDeclaration.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/ast/Initializer.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/search/org/ecl
ipse/jdt/internal/core/search/indexing/SourceIndexer.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/search/org/ecl
ipse/jdt/internal/core/search/matching/MatchLocator.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/RecoveredMethod.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/Parser.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/ast/Clinit.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/Compiler.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/codeassist/org
/eclipse/jdt/internal/codeassist/complete/CompletionParser.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/SourceElementParser.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/HierarchyResolver.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/RecoveredBlock.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/RecoveredType.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/RecoveredField.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/RecoveredUnit.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/model/org/ecli
pse/jdt/internal/core/jdom/DOMBuilder.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/DocumentElementParser.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/model/org/ecli
pse/jdt/internal/core/CompilationUnit.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/model/org/ecli
pse/jdt/internal/core/SourceMapper.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/model/org/ecli
pse/jdt/internal/core/BinaryMethod.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/ast/AbstractMethodDeclaration.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/eval/org/eclip
se/jdt/internal/eval/CodeSnippetCompiler.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/eval/org/eclip
se/jdt/internal/eval/CodeSnippetParser.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/codeassist/org
/eclipse/jdt/internal/codeassist/SelectionEngine.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/model/org/ecli
pse/jdt/internal/core/jdom/SimpleDOMBuilder.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/codeassist/org
/eclipse/jdt/internal/codeassist/impl/Engine.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/codeassist/org
/eclipse/jdt/internal/codeassist/CompletionEngine.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/codeassist/org
/eclipse/jdt/internal/codeassist/impl/AssistParser.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/RecoveredInitializer.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/problem/ProblemReporter.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/RecoveredElement.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/codeassist/org
/eclipse/jdt/internal/codeassist/select/SelectionParser.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/search/org/ecl
ipse/jdt/internal/core/search/matching/MatchLocatorParser.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/ast/TypeDeclaration.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/search/org/ecl
ipse/jdt/internal/core/search/matching/PotentialMatch.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/ast/ConstructorDeclaration.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/formatter/org/
eclipse/jdt/internal/formatter/CodeFormatter.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/ast/MethodDeclaration.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/ast/Initializer.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/search/org/ecl
ipse/jdt/internal/core/search/indexing/SourceIndexer.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/search/org/ecl
ipse/jdt/internal/core/search/matching/MatchLocator.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/RecoveredMethod.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/Parser.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/ast/Clinit.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/Compiler.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/codeassist/org
/eclipse/jdt/internal/codeassist/complete/CompletionParser.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/SourceElementParser.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/HierarchyResolver.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/RecoveredBlock.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/RecoveredType.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/RecoveredField.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/parser/RecoveredUnit.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/model/org/ecli
pse/jdt/internal/core/jdom/DOMBuilder.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core/compiler/org/e
clipse/jdt/internal/compiler/DocumentElementParser.java
Skipped over unchanged class file CompilationUnit.class
Skipped over unchanged class file CompilationUnit$1.class
Skipped over unchanged class file SourceMapper.class
Skipped over unchanged class file BinaryMethod.class
Skipped over unchanged class file BinaryMethod$DecodeParametersNames.class
Skipped over unchanged class file AbstractMethodDeclaration.class
Skipped over unchanged class file CodeSnippetCompiler.class
Skipped over unchanged class file CodeSnippetParser.class
Skipped over unchanged class file SelectionEngine.class
Skipped over unchanged class file SelectionEngine$1.class
Skipped over unchanged class file SimpleDOMBuilder.class
Skipped over unchanged class file Engine.class
Skipped over unchanged class file CompletionEngine$1.class
Skipped over unchanged class file CompletionEngine.class
Skipped over unchanged class file AssistParser.class
Skipped over unchanged class file RecoveredInitializer.class
Skipped over unchanged class file ProblemReporter.class
Skipped over unchanged class file RecoveredElement.class
Skipped over unchanged class file SelectionParser$2.class
Skipped over unchanged class file SelectionParser$1.class
Skipped over unchanged class file SelectionParser.class
Skipped over unchanged class file MatchLocatorParser.class
Skipped over unchanged class file 
MatchLocatorParser$LocalDeclarationVisitor.class
Skipped over unchanged class file TypeDeclaration.class
Skipped over unchanged class file PotentialMatch.class
Skipped over unchanged class file PotentialMatch$1.class
Skipped over unchanged class file ConstructorDeclaration.class
Skipped over unchanged class file CodeFormatter.class
Skipped over unchanged class file MethodDeclaration.class
Skipped over unchanged class file Initializer.class
Skipped over unchanged class file SourceIndexer.class
Skipped over unchanged class file MatchLocator.class
Skipped over unchanged class file MatchLocator$1.class
Skipped over unchanged class file RecoveredMethod.class
Skipped over unchanged class file Parser.class
Skipped over unchanged class file Clinit.class
Skipped over unchanged class file Compiler.class
Skipped over unchanged class file Compiler$1.class
Skipped over unchanged class file CompletionParser.class
Skipped over unchanged class file SourceElementParser$1.class
Skipped over unchanged class file 
SourceElementParser$LocalDeclarationVisitor.class
Skipped over unchanged class file SourceElementParser.class
Skipped over unchanged class file HierarchyResolver.class
Skipped over unchanged class file RecoveredBlock.class
Skipped over unchanged class file RecoveredType.class
Skipped over unchanged class file RecoveredField.class
Skipped over unchanged class file RecoveredUnit.class
Skipped over unchanged class file DOMBuilder.class
Skipped over unchanged class file DocumentElementParser.class
Skipped over unchanged class file DocumentElementParser$1.class

INCREMENTAL build of: Crap
Add dependents of changed class file 
D:org/eclipse/jdt/internal/compiler/parser/Parser
  adding dependents of Parser in org/eclipse/jdt/internal/compiler/parser

INCREMENTAL build of: org.eclipse.jdt.core.tests
Add dependents of changed class file 
D:org/eclipse/jdt/internal/compiler/parser/Parser
  adding dependents of Parser in org/eclipse/jdt/internal/compiler/parser
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core.tests/Eclipse 
Java Tests Compiler/org/eclipse/jdt/tests/compiler/parser/DietRecoveryTest.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core.tests/Eclipse 
Java Tests Compiler/org/eclipse/jdt/tests/compiler/parser/SyntaxErrorTest.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core.tests/Eclipse 
Java Tests 
Compiler/org/eclipse/jdt/tests/compiler/parser/AbstractCompletionTest.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core.tests/Eclipse 
Java Tests 
Compiler/org/eclipse/jdt/tests/compiler/parser/AbstractSelectionTest.java
  found match in org.eclipse.jdt.internal.compiler.parser to Parser
  adding affected source file 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core.tests/Eclipse 
Java Tests 
Compiler/org/eclipse/jdt/tests/compiler/parser/SourceElementParserTest.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core.tests/Eclipse 
Java Tests Compiler/org/eclipse/jdt/tests/compiler/parser/DietRecoveryTest.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core.tests/Eclipse 
Java Tests Compiler/org/eclipse/jdt/tests/compiler/parser/SyntaxErrorTest.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core.tests/Eclipse 
Java Tests 
Compiler/org/eclipse/jdt/tests/compiler/parser/AbstractCompletionTest.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core.tests/Eclipse 
Java Tests 
Compiler/org/eclipse/jdt/tests/compiler/parser/AbstractSelectionTest.java
About to compile 
D:/eclipse/workspaces/development2.0/plugins/org.eclipse.jdt.core.tests/Eclipse 
Java Tests 
Compiler/org/eclipse/jdt/tests/compiler/parser/SourceElementParserTest.java
Skipped over unchanged class file DietRecoveryTest$1.class
Skipped over unchanged class file DietRecoveryTest.class
Skipped over unchanged class file SyntaxErrorTest.class
Skipped over unchanged class file AbstractCompletionTest.class
Skipped over unchanged class file AbstractSelectionTest.class
Skipped over unchanged class file SourceElementParserTest.class
Comment 1 Kent Johnson CLA 2001-11-15 16:41:09 EST
Fixed. The ClassFileReader was using identity to test String constants.