Bug 6443

Summary: Incremental java builder doesn't handle folder create/delete nicely
Product: [Eclipse Project] JDT Reporter: John Arthorne <john.arthorne>
Component: CoreAssignee: Kent Johnson <kent_johnson>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: kent_johnson
Version: 2.0   
Target Milestone: 2.0 M2   
Hardware: PC   
OS: Windows 2000   
Whiteboard:

Description John Arthorne CLA 2001-11-29 16:10:31 EST
Add or remove a folder called "org" anywhere under the source folder of any 
eclipse project.  The entire project and all dependent projects get recompiled.  
For example, in my workspace, I start with:

/org.eclipse.core.resources/src/org/eclipse/core/resources/

Then I create:

/org.eclipse.core.resources/src/org/eclipse/core/resources/org/

It recompiles everything.  Deletion does the same.

On folder additions/removals, it seems to invalid any type that has a dependency 
on any package that contains that folder name.  This is too coarse-grained.
Comment 1 Philipe Mulet CLA 2001-11-30 06:50:26 EST
Just to clarify. Had you switched to using the new builder ?
Comment 2 Philipe Mulet CLA 2001-11-30 07:01:36 EST
The new builder is recompiling the entire project where 'org' got added, but 
does not recompile any of the dependent projects, since none of the classfiles 
got actually refreshed (since identical).

It is though questionable whether or not the initiating project should be that 
much refreshed...
Comment 3 John Arthorne CLA 2001-11-30 09:42:19 EST
This was in build 20011127.  I'm guessing this uses the new builder, the 
behaviour seems generally different.

It seems to be recompiling dependent projects as well, but I can't be sure.  I 
get messages saying "Compiling contents of ..." for packages in other projects, 
but I don't know if this really means it's compiling or just doing the 
incremental analysis.
Comment 4 Philipe Mulet CLA 2001-11-30 18:55:36 EST
The new builder isn't officially enabled yet, so unless you changed your 
org.eclipse.jdt.core/plugin.xml, you are running the old builder implementation.

Recently (around 20011120), we released a fix into the old builder which causes 
it to recompile all dependents of any touched classfile (in dependent 
projects). Without this change, there was quite simple scenarii which the 
builder was not handling, causing grief to many end-users.

The new builder should deal far better with these scenarii. 
Comment 5 Kent Johnson CLA 2001-12-10 14:05:59 EST
The new builder was recompiling too much since "org" is a well known name.

Released a fix to improve the behaviour, now only references to 
org.eclipse.core.resources are recompiled.
Comment 6 Kent Johnson CLA 2001-12-12 12:12:45 EST
The 7 well known names will have less than optimal behaviour but its worth the 
trade off to save the space.