Bug 158870

Summary: eclipse's bundled ant classes being picked up by system ant
Product: [Fedora] Fedora Reporter: Gary Benson <gbenson>
Component: eclipseAssignee: eclipse-bugs
Status: CLOSED RAWHIDE QA Contact:
Severity: high Docs Contact:
Priority: medium    
Version: 4   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-02-03 22:07:17 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 136450    
Attachments:
Description Flags
Fix none

Description Gary Benson 2005-05-26 14:04:17 UTC
Description of problem:
Some of eclipse's bundled ant classes are being picked up by the system ant,
which then fails because the classpath (for system ant) does not contain all the
classes that the (newer) eclipse ant requires.

Version-Release number of selected component (if applicable):
eclipse-3.1.0_fc-0.M7.7

How reproducible:
Always

Steps to Reproduce:
1. echo '<project/>' > build.xml
2. ant
  
Actual results:
Buildfile: build.xml
java.lang.NoClassDefFoundError: while resolving class: org.apache.tools.ant.Project
   at java.lang.VMClassLoader.transformException(java.lang.Class,
java.lang.Throwable) (/usr/lib/libgcj.so.6.0.0)
   at java.lang.VMClassLoader.resolveClass(java.lang.Class)
(/usr/lib/libgcj.so.6.0.0)
   at java.lang.Class.initializeClass() (/usr/lib/libgcj.so.6.0.0)
   at org.apache.tools.ant.Main.runBuild(java.lang.ClassLoader)
(/usr/lib/eclipse/plugins/org.apache.ant_1.6.3/lib/ant.jar.so)
   at org.apache.tools.ant.Main.startAnt(java.lang.String[],
java.util.Properties, java.lang.ClassLoader)
(/usr/lib/eclipse/plugins/org.apache.ant_1.6.3/lib/ant.jar.so)
   at org.apache.tools.ant.launch.Launcher.run(java.lang.String[])
(/usr/lib/eclipse/plugins/org.apache.ant_1.6.3/lib/ant-nodeps.jar.so)
   at org.apache.tools.ant.launch.Launcher.main(java.lang.String[])
(/usr/lib/eclipse/plugins/org.apache.ant_1.6.3/lib/ant-nodeps.jar.so)
   at gnu.java.lang.MainThread.call_main() (/usr/lib/libgcj.so.6.0.0)
   at gnu.java.lang.MainThread.run() (/usr/lib/libgcj.so.6.0.0)
Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.Executor not
found in...
   ...

Expected results:
Buildfile: build.xml

BUILD SUCCESSFUL
Total time: 1 second

Comment 1 Thomas Fitzsimmons 2005-05-26 14:42:26 UTC
Our eclipse packages create symlinks to the system-installed ant (rather than
bundling their own version of ant).  In M7 eclipse started bundling ant 1.6.4. 
Currently our eclipse packages link to what they think is 1.6.2, which causes
the breakage you're seeing.


Comment 2 Gary Benson 2005-05-26 14:46:43 UTC
How does that work?  org.apache.tools.ant.Executor first appeared in ant-1.6.3:
the code that references it must come from that version of ant, so eclipse must
be bundling it, must it not?

Comment 3 Gary Benson 2005-05-26 15:01:36 UTC
Created attachment 114870 [details]
Fix

This ought to fix it.  It's going to take some messing about to build it
though:

 1. delete eclipse-3.1.0_fc-0.M7.5 and eclipse-3.1.0_fc-0.M7.7 from dist-fc4
    (to stop the new classes from masking the system ant's)
 2. move java-1.4.2-gcj-compat-1.4.2.0-40jpp_26rh out of dist-fc4 temporarily
    and delete java-1.4.2-gcj-compat-1.4.2.0-40jpp_25rh entirely
    (so tools.jar is looking in the right place for ecj)
 3. build the new eclipse
 4. move java-1.4.2-gcj-compat-1.4.2.0-40jpp_26rh back into dist-fc4.

Comment 5 Gary Benson 2005-05-27 09:15:45 UTC
I can confirm that the combination of eclipse-ecj-3.1.0_fc-0.M7.8 and
java-1.4.2-gcj-compat-1.4.2.0-40jpp_30rh works beautifully.