Interpreting an error message

1 view
Skip to first unread message

Russel Winder

unread,
Oct 26, 2005, 4:41:38 AM10/26/05
to TestNG Users
I have a problem understanding what this might mean, any ideas?


[testng] ===============================================
[testng] Suite for Command line test
[testng] Total tests run: 0, Failures: 0, Skips: 0
[testng] ===============================================

[testng] Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
[testng] at java.lang.ClassLoader.defineClass1(Native Method)
[testng] at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
[testng] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
[testng] at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
[testng] at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
[testng] at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
[testng] at java.security.AccessController.doPrivileged(Native Method)
[testng] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
[testng] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
[testng] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
[testng] at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
[testng] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
[testng] at java.lang.ClassLoader.defineClass1(Native Method)
[testng] at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
[testng] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
[testng] at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
[testng] at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
[testng] at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
[testng] at java.security.AccessController.doPrivileged(Native Method)
[testng] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
[testng] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
[testng] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
[testng] at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
[testng] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
[testng] at java.lang.Class.getDeclaredConstructors0(Native Method)
[testng] at java.lang.Class.privateGetDeclaredConstructors(Class.java:2328)
[testng] at java.lang.Class.getConstructors(Class.java:1446)
[testng] at org.testng.internal.TestNGClassFinder.isTestNGClass(TestNGClassFinder.java:149)
[testng] at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:49)
[testng] at org.testng.TestRunner.initMethods(TestRunner.java:256)
[testng] at org.testng.TestRunner.init(TestRunner.java:192)
[testng] at org.testng.TestRunner.init(TestRunner.java:164)
[testng] at org.testng.TestRunner.<init>(TestRunner.java:112)
[testng] at org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:325)
[testng] at org.testng.SuiteRunner.privateRun(SuiteRunner.java:160)
[testng] at org.testng.SuiteRunner.run(SuiteRunner.java:126)
[testng] at org.testng.TestNG.run(TestNG.java:285)
[testng] at org.testng.TestNG.privateMain(TestNG.java:372)
[testng] at org.testng.TestNG.main(TestNG.java:321)



--
Russel.
====================================================
Dr Russel Winder +44 20 7585 2200
41 Buckmaster Road +44 7770 465 077
London SW11 1EN, UK rus...@russel.org.uk
signature.asc

Alexandru Popescu

unread,
Oct 26, 2005, 6:28:00 AM10/26/05
to testng...@googlegroups.com
Not too sure about it, but it says to me that you need a clean rebuild :-).

./alex
--
.w( the_mindstorm )p.

#: Russel Winder changed the world a bit at a time by saying on 10/26/2005 10:41 AM :#

Cédric Beust ♔

unread,
Oct 26, 2005, 9:01:19 AM10/26/05
to testng...@googlegroups.com
If I'm not mistaken, this is thrown by the JVM when it is attempting to "hot swap" a class that has an incompatible change in it, such as an added method.

How exactly is it happening, from the IDE?

--
Cedric


On 10/26/05, Russel Winder <rus...@russel.org.uk> wrote:
I have a problem understanding what this might mean, any ideas?


   [testng] ===============================================
   [testng] Suite for Command line test
   [testng] Total tests run: 0, Failures: 0, Skips: 0
   [testng] ===============================================

   [testng] Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
   [testng]     at java.lang.ClassLoader.defineClass1 (Native Method)

   [testng]     at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
   [testng]     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
   [testng]     at java.net.URLClassLoader.defineClass (URLClassLoader.java:260)

   [testng]     at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
   [testng]     at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
   [testng]     at java.security.AccessController.doPrivileged (Native Method)

   [testng]     at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
   [testng]     at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
   [testng]     at sun.misc.Launcher$AppClassLoader.loadClass (Launcher.java:268)

   [testng]     at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
   [testng]     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
   [testng]     at java.lang.ClassLoader.defineClass1 (Native Method)

   [testng]     at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
   [testng]     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
   [testng]     at java.net.URLClassLoader.defineClass (URLClassLoader.java:260)

   [testng]     at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
   [testng]     at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
   [testng]     at java.security.AccessController.doPrivileged (Native Method)

   [testng]     at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
   [testng]     at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
   [testng]     at sun.misc.Launcher$AppClassLoader.loadClass (Launcher.java:268)

   [testng]     at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
   [testng]     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
   [testng]     at java.lang.Class.getDeclaredConstructors0 (Native Method)

   [testng]     at java.lang.Class.privateGetDeclaredConstructors(Class.java:2328)
   [testng]     at java.lang.Class.getConstructors(Class.java:1446)
   [testng]     at org.testng.internal.TestNGClassFinder.isTestNGClass (TestNGClassFinder.java:149)

   [testng]     at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:49)
   [testng]     at org.testng.TestRunner.initMethods(TestRunner.java:256)
   [testng]     at org.testng.TestRunner.init(TestRunner.java:192)
   [testng]     at org.testng.TestRunner.init(TestRunner.java:164)
   [testng]     at org.testng.TestRunner.<init>(TestRunner.java:112)
   [testng]     at org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner (SuiteRunner.java:325)

   [testng]     at org.testng.SuiteRunner.privateRun(SuiteRunner.java:160)
   [testng]     at org.testng.SuiteRunner.run(SuiteRunner.java:126)
   [testng]     at org.testng.TestNG.run(TestNG.java :285)
   [testng]     at org.testng.TestNG.privateMain(TestNG.java:372)
   [testng]     at org.testng.TestNG.main(TestNG.java:321)



--
Russel.
====================================================
Dr Russel Winder                +44 20 7585 2200
41 Buckmaster Road              +44 7770 465 077
London SW11 1EN, UK             rus...@russel.org.uk


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQBDX0FCr2EGkixYSboRAmrvAJ975UUzwQUz8h88CCGiXgdvBfd6LgCaAtxM
ISz7yfe3PF0VTYbuZHSj1D0=
=PTVy
-----END PGP SIGNATURE-----





--
Cédric

Russel Winder

unread,
Oct 26, 2005, 10:15:16 AM10/26/05
to testng...@googlegroups.com
On Wed, 2005-10-26 at 06:01 -0700, Cédric Beust ♔ wrote:
> If I'm not mistaken, this is thrown by the JVM when it is attempting
> to "hot swap" a class that has an incompatible change in it, such as
> an added method.
>
> How exactly is it happening, from the IDE?

No this is from a command line Ant build.

I have a library which gets compiled to a location, build/classes. I
then compile tests into build/tests with build/classes in the classpath.
Everything is hunky dory.

I also have some alternate versions of some of the classes from the
library which I compile to build_alt/classes with build/classes in the
classpath so as pick up the standard library versions of things no in
the set of alternates. No I compile the tests to build_alt/tests with
build_alt/classes and build/classes in the class path in that order.
This should mean picking up the alternates and not the versions in the
standard library -- they have the same API so this should work.
Everything compiles fine but when I execute the testng task from Ant I
now get:

[testng] ===============================================
[testng] Suite for Command line test
[testng] Total tests run: 114, Failures: 7, Skips: 79
[testng] ===============================================

The original problem was an error in my build.xml, I got the classpath
wrong. So now things execute but I get the same exception as I had
originally so I still have the problem it just exhibits itself
elsewhere. The HTML output is given below showing the reason for a
setup method failing is the exception, this causes 6 fails and all the
skips. The successful tests show that something works :-)

Given the compile works I'm assuming the problem is a classpath problem
of some sort but as the class paths are all correct I cannot see the
problem.


java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
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:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
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:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at Array_Test.setUp(Array_Test.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:352)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:282)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:151)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:316)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:509)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:90)
at org.testng.TestRunner.privateRun(TestRunner.java:620)
at org.testng.TestRunner.run(TestRunner.java:503)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:200)
at org.testng.SuiteRunner.run(SuiteRunner.java:126)
at org.testng.TestNG.run(TestNG.java:285)
at org.testng.TestNG.privateMain(TestNG.java:372)
signature.asc
Reply all
Reply to author
Forward
0 new messages