Bugzilla (bugzilla.redhat.com) will be under maintenance for infrastructure upgrades and will not be available on July 31st between 12:30 AM - 05:30 AM UTC. We appreciate your understanding and patience. You can follow status.redhat.com for details.
Bug 158870 - eclipse's bundled ant classes being picked up by system ant
Summary: eclipse's bundled ant classes being picked up by system ant
Alias: None
Product: Fedora
Classification: Fedora
Component: eclipse
Version: 4
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: eclipse-bugs
QA Contact:
Depends On:
Blocks: FC4Blocker
TreeView+ depends on / blocked
Reported: 2005-05-26 14:04 UTC by Gary Benson
Modified: 2007-11-30 22:11 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2006-02-03 22:07:17 UTC
Type: ---

Attachments (Terms of Use)
Fix (2.29 KB, patch)
2005-05-26 15:01 UTC, Gary Benson
no flags Details | Diff

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):

How reproducible:

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)
   at java.lang.Class.initializeClass() (/usr/lib/libgcj.so.6.0.0)
   at org.apache.tools.ant.Main.runBuild(java.lang.ClassLoader)
   at org.apache.tools.ant.Main.startAnt(java.lang.String[],
java.util.Properties, java.lang.ClassLoader)
   at org.apache.tools.ant.launch.Launcher.run(java.lang.String[])
   at org.apache.tools.ant.launch.Launcher.main(java.lang.String[])
   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

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]

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

 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- out of dist-fc4 temporarily
    and delete java-1.4.2-gcj-compat- 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- 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- works beautifully.

Note You need to log in before you can comment on or make changes to this bug.