I've upgraded a supporting library to 1.2.13 and as a result the main program needed also upgrading to 1.2.13.
A class in the supporting library runs perfectly using 1.2.13, however if that class is loaded from the main of the main program I get an exception. java.lang.NoSuchFieldError: level at org.apache.log4j.spi.RootLogger.setLevel(RootLogger.java:65) at org.apache.log4j.spi.RootLogger.<init>(RootLogger.java:44) at org.apache.log4j.LogManager.<clinit>(LogManager.java:78) at org.apache.log4j.Logger.getLogger(Logger.java:104) at org.tbee.swing.ThreadCheckingRepaintManager.<clinit>(ThreadCheckingRepai ntManager.java:35) at nl.reinders.Reinders.main(Reinders.java:266) This is the very very first line being excuted, calling a component in the library that checks if all Swing code is run by the EDT. public static void main(String[] argv) { try { // check the EDT ThreadCheckingRepaintManager.install(true); Now for the fun part: this only happens in Eclipse (3.1.2 and 3.2). So: - Eclipse compiles correctly. - It cannot start the application's main. - It can start the Components test-main (using log4j 1.2.13). - When run from the command line, the application works ok. - I do not have this problem with an older version of log4j (1.1.3) It appears that at runtime Eclipse takes the wrong log4j, but all my tests and knowledge of Eclipse says it is using the correct version. I made complete clean installs of Eclipse, but I can get it to work. Anyone ever seen something like this? Any suggestions on how to proceed? Tom