Bug 10264

Summary: BuildAll with curcular dependencies fails but builds with JAVAC
Product: [Eclipse Project] Platform Reporter: Larry Keeling <lkeeling>
Component: ResourcesAssignee: DJ Houghton <dj.houghton>
Status: RESOLVED DUPLICATE QA Contact:
Severity: critical    
Priority: P1    
Version: 1.0   
Target Milestone: ---   
Hardware: PC   
OS: Windows 2000   
Whiteboard:

Description Larry Keeling CLA 2002-02-26 11:23:21 EST
Customers have been reporting problems trying to build large applications 
(i.e.  more than 35 projects).
Although there are several scenarios that this problems occurs, the simpliest 
way to think of this is 
then a customer starts with a new workspace, loads the source of the large 
application and selects Rebuild All.
The result is a few thousand errors in the task list.  The same source can be 
built using JAVAC (i.e builds
with out any errors).

The difference in the build results between using JAVAC and Eclipse appears to 
related to circular dependencies.
The reasons for having circular dependencies in these large applications varies 
with each customer.  From the
customer's point of view they have many developers using this structure and 
their nightly builds (using JAVAC)
build without any errors.  Thus they expect the IDE to be able to build the 
same code without errors.  In addition
waiting for V2 of Eclipse is not a alternative for these customers.  Also 
building individual projects is also not
alternaitve since it can take a long, long time to get all the parts build 
without errors using elipse.

To demonstrate the problem I have created a testcase using 6 projects.  

Here are the steps using Eclipse:

0)  Turn off Automatic build on Windows->Perferences

1)  Create the projects:
	CycleDB
	CycleMain
	CyclePeople
	CyclePolicy
	CycleServer
	CycleUtil

2)  Import from the file system into CycleDB the following:
	ivjdab.jar
	vajAS400ET.jar
	vajrmi.jar
	dax.jar
    Import from the file system into CycleServer the following:
	VAJSQLJ.jar

    The jars files are in RTJars.zip	
 
3)  Import the java source into each project from the corresponding jars files 
(which are in Cycle.zip).
    Ensure that the .classpath file is replaced during the import. 

4)  Select Project->Rebuild All

The result will be a few hundred build errors.

Here are the steps using JAVAC:

1) Ensure you have a 1.3 JDK installed

2) Place the bld.cmd (which is in Cycle.zip) in the Eclpise workspace directory

3) From the command line remove all the class files in the workspace directory 
tree
   (for example issue del *.class /s from the workspace directory)

4) Ensure JAVAC is on your path

5) Run bld.cmd
 
The result is a successful build with no errors.

The zip files Cycle and RTJars are available on request.
Comment 1 Larry Keeling CLA 2002-02-26 12:52:31 EST

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