Hi,

There was a bug reported on a the optional junit task "junit task error
message"
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3978

This bug report, gives a workaround that I have applied to my project, i.e. load the 
junit.jar and the ant-optional.jar is the same classloader then
declare junit task
with taskdef with a classpath that includes junit and ant-optional.jar.

When I lauched the ant build script on command line, it works perfectly.
However when I launch the ant build script from IDEA build 612, I still get the error 
reported is the previous bug report.

WITH IDEA
-----------------
build.xml
Detected Java version: 1.3 in: C:\JBuilder4\jdk1.3.1\jre
Detected OS: Windows NT
parsing buildfile Z:\Source\Java\GUI\build.xml with URI = 
file:Z:/Source/Java/GUI/build.xml
Project base dir set to: Z:\Source\Java\GUI
Build sequence for target `unittest' is [unittest]
Complete build sequence is [unittest, init, clean, version, compile, deploy, javadoc, 
dist, package, all]
unittest
echo
Starting unit test
junit
Z:\Source\Java\GUI\build.xml:123: Could not create task of type: junit due to 
java.lang.NoClassDefFoundError: junit/framework/TestListener
     at org.apache.tools.ant.Project.createTask(Project.java:509)
     at org.apache.tools.ant.UnknownElement.makeTask(UnknownElement.java:148)
     at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:83)
     at org.apache.tools.ant.Task.perform(Task.java:216)
     at org.apache.tools.ant.Target.execute(Target.java:184)
     at org.apache.tools.ant.Target.performTasks(Target.java:202)
     at org.apache.tools.ant.Project.executeTarget(Project.java:601)
     at org.apache.tools.ant.Project.executeTargets(Project.java:560)
     at com.intellij.ant.AntMain.a(AntMain.java:235)
     at com.intellij.ant.AntMain.a(AntMain.java:199)
     at com.intellij.ant.AntMain.main(AntMain.java:288)
--- Nested Exception ---
java.lang.NoClassDefFoundError: junit/framework/TestListener
     at java.lang.ClassLoader.defineClass0(Native Method)
     at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
     at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
     at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
     at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
     at java.security.AccessController.doPrivileged(Native Method)
     at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
     at java.lang.Class.newInstance0(Native Method)
     at java.lang.Class.newInstance(Class.java:237)
     at org.apache.tools.ant.Project.createTask(Project.java:486)
     at org.apache.tools.ant.UnknownElement.makeTask(UnknownElement.java:148)
     at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:83)
     at org.apache.tools.ant.Task.perform(Task.java:216)
     at org.apache.tools.ant.Target.execute(Target.java:184)
     at org.apache.tools.ant.Target.performTasks(Target.java:202)
     at org.apache.tools.ant.Project.executeTarget(Project.java:601)
     at org.apache.tools.ant.Project.executeTargets(Project.java:560)
     at com.intellij.ant.AntMain.a(AntMain.java:235)
     at com.intellij.ant.AntMain.a(AntMain.java:199)
     at com.intellij.ant.AntMain.main(AntMain.java:288)
Z:\Source\Java\GUI\build.xml:123: Could not create task of type: junit due to 
java.lang.NoClassDefFoundError: junit/framework/TestListener
     at org.apache.tools.ant.Project.createTask(Project.java:509)
     at org.apache.tools.ant.UnknownElement.makeTask(UnknownElement.java:148)
     at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:83)
     at org.apache.tools.ant.Task.perform(Task.java:216)
     at org.apache.tools.ant.Target.execute(Target.java:184)
     at org.apache.tools.ant.Target.performTasks(Target.java:202)
     at org.apache.tools.ant.Project.executeTarget(Project.java:601)
     at org.apache.tools.ant.Project.executeTargets(Project.java:560)
     at com.intellij.ant.AntMain.a(AntMain.java:235)
     at com.intellij.ant.AntMain.a(AntMain.java:199)
     at com.intellij.ant.AntMain.main(AntMain.java:288)
--- Nested Exception ---
java.lang.NoClassDefFoundError: junit/framework/TestListener
     at java.lang.ClassLoader.defineClass0(Native Method)
     at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
     at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
     at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
     at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
     at java.security.AccessController.doPrivileged(Native Method)
     at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
     at java.lang.Class.newInstance0(Native Method)
     at java.lang.Class.newInstance(Class.java:237)
     at org.apache.tools.ant.Project.createTask(Project.java:486)
     at org.apache.tools.ant.UnknownElement.makeTask(UnknownElement.java:148)
     at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:83)
     at org.apache.tools.ant.Task.perform(Task.java:216)
     at org.apache.tools.ant.Target.execute(Target.java:184)
     at org.apache.tools.ant.Target.performTasks(Target.java:202)
     at org.apache.tools.ant.Project.executeTarget(Project.java:601)
     at org.apache.tools.ant.Project.executeTargets(Project.java:560)
     at com.intellij.ant.AntMain.a(AntMain.java:235)
     at com.intellij.ant.AntMain.a(AntMain.java:199)
     at com.intellij.ant.AntMain.main(AntMain.java:288)
Z:\Source\Java\GUI\build.xml:123: Could not create task of type: junit due to 
java.lang.NoClassDefFoundError: junit/framework/TestListener
     at org.apache.tools.ant.Project.createTask(Project.java:509)
     at org.apache.tools.ant.UnknownElement.makeTask(UnknownElement.java:148)
     at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:83)
     at org.apache.tools.ant.Task.perform(Task.java:216)
     at org.apache.tools.ant.Target.execute(Target.java:184)
     at org.apache.tools.ant.Target.performTasks(Target.java:202)
     at org.apache.tools.ant.Project.executeTarget(Project.java:601)
     at org.apache.tools.ant.Project.executeTargets(Project.java:560)
     at com.intellij.ant.AntMain.a(AntMain.java:235)
     at com.intellij.ant.AntMain.a(AntMain.java:199)
     at com.intellij.ant.AntMain.main(AntMain.java:288)
--- Nested Exception ---
java.lang.NoClassDefFoundError: junit/framework/TestListener
     at java.lang.ClassLoader.defineClass0(Native Method)
     at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
     at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
     at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
     at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
     at java.security.AccessController.doPrivileged(Native Method)
     at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
     at java.lang.Class.newInstance0(Native Method)
     at java.lang.Class.newInstance(Class.java:237)
     at org.apache.tools.ant.Project.createTask(Project.java:486)
     at org.apache.tools.ant.UnknownElement.makeTask(UnknownElement.java:148)
     at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:83)
     at org.apache.tools.ant.Task.perform(Task.java:216)
     at org.apache.tools.ant.Target.execute(Target.java:184)
     at org.apache.tools.ant.Target.performTasks(Target.java:202)
     at org.apache.tools.ant.Project.executeTarget(Project.java:601)
     at org.apache.tools.ant.Project.executeTargets(Project.java:560)
     at com.intellij.ant.AntMain.a(AntMain.java:235)
     at com.intellij.ant.AntMain.a(AntMain.java:199)
     at com.intellij.ant.AntMain.main(AntMain.java:288)

Build completed with 3 errors and 1 warning. Time: 1 s

ON COMMAND LINE
-------------------------------
Z:\Source\Java\GUI>ant all
Buildfile: build.xml

init:

clean:
   [delete] Deleting 276 files from Z:\Build\jrelease\TraderGUI\class
   [delete] Deleting 1 files from Z:\Source\Java\GUI\src

version:

compile:
    [javac] Compiling 67 source files to \Build\jrelease\TraderGUI\class

deploy:

package:
      [jar] Building jar: Z:\Build\jrelease\TraderGUI\TraderGUI.jar

dist:

unittest:
     [echo] Starting unit test
    [junit] TestAmount completed successfully

all:

BUILD SUCCESSFUL

Total time: 1 minute 2 seconds
Why the behaviour is different from the command line ?

Is there a workaround ?

"This is expected behaviour. The junit.jar has to be in the same classloader
that the junit task is in. This means that you either have to place junit.jar
in $ANT_HOME/lib or remove optional.jar from $ANT_HOME/lib and use <taskdef
..> to define it with a classpath that includes junit and optional.jar" Peter Donald, 
Apache foundation

Please let me know

Daniel Rosenberg,
[EMAIL PROTECTED]
EAP member




This message and any attachments (the "message") is
intended solely for the addressees and is confidential. 
If you receive this message in error, please delete it and 
immediately notify the sender. Any use not in accord with 
its purpose, any dissemination or disclosure, either whole 
or partial, is prohibited except formal approval. The internet
can not guarantee the integrity of this message. 
BNP PARIBAS (and its subsidiaries) shall (will) not 
therefore be liable for the message if modified. 

                ---------------------------------------------

Ce message et toutes les pieces jointes (ci-apres le 
"message") sont etablis a l'intention exclusive de ses 
destinataires et sont confidentiels. Si vous recevez ce 
message par erreur, merci de le detruire et d'en avertir 
immediatement l'expediteur. Toute utilisation de ce 
message non conforme a sa destination, toute diffusion 
ou toute publication, totale ou partielle, est interdite, sauf 
autorisation expresse. L'internet ne permettant pas 
d'assurer l'integrite de ce message, BNP PARIBAS (et ses
filiales) decline(nt) toute responsabilite au titre de ce 
message, dans l'hypothese ou il aurait ete modifie.


_______________________________________________
Eap-list mailing list
[EMAIL PROTECTED]
http://www.intellij.com/mailman/listinfo/eap-list

Reply via email to