Maven compilation fails with java.lang.NoSuchFieldError: warningThreshold

When I try to compile a vaadin 7.1.0 project, it fails with the strange error message mentioned below.
Some googling did return some hit’s, but nothing realy clear for me on what should be done in maven to fix the problem.

We did develop with Netbeans + ant scripts for vaadin 6.x
For Vaadin 7 we did now switch over to maven in the hope to have a plug and play solution, but apparently it’s more a plug and pray one :frowning:


[vaadin:compile]

auto discovered modules [com.aarboard.reservation.reservation.AppWidgetSet]

Failed to retrieve com.vaadin:vaadin-client-compiler based on project POM
Using com.vaadin:vaadin-client-compiler version 7.1.0
Compiling module com.aarboard.reservation.reservation.AppWidgetSet
[ERROR]
 Unexpected internal compiler error
java.lang.NoSuchFieldError: warningThreshold
	at com.google.gwt.dev.javac.JdtCompiler$1.<init>(JdtCompiler.java:612)
	at com.google.gwt.dev.javac.JdtCompiler.getCompilerOptions(JdtCompiler.java:610)
	at com.google.gwt.dev.javac.JdtCompiler$CompilerImpl.<init>(JdtCompiler.java:389)
	at com.google.gwt.dev.javac.JdtCompiler.doCompile(JdtCompiler.java:939)
	at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:276)
	at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:499)
	at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:423)
	at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:373)
	at com.google.gwt.dev.Precompile.precompile(Precompile.java:246)
	at com.google.gwt.dev.Precompile.precompile(Precompile.java:229)
	at com.google.gwt.dev.Precompile.precompile(Precompile.java:141)
	at com.google.gwt.dev.Compiler.run(Compiler.java:232)
	at com.google.gwt.dev.Compiler.run(Compiler.java:198)
	at com.google.gwt.dev.Compiler$1.run(Compiler.java:170)
	at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88)
	at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:82)
	at com.google.gwt.dev.Compiler.main(Compiler.java:177)
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 12.307s
Finished at: Wed Jul 10 01:45:00 CEST 2013
Final Memory: 9M/243M
------------------------------------------------------------------------

Failed to execute goal com.vaadin:vaadin-maven-plugin:7.1.0:compile (default) on project Reservation: Command [[
C:\Program Files\Java\jdk1.6.0_34\jre\bin\java -Xmx512M -Xss1024k -classpath C:\Develop\Aarboard\Reservation\target\classes;C:\Develop\Aarboard\Reservation\src\main\java;C:\Develop\Aarboard\Reservation\src\main\resources;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-server\7.1.0\vaadin-server-7.1.0.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-shared\7.1.0\vaadin-shared-7.1.0.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-shared-deps\1.0.2\vaadin-shared-deps-1.0.2.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-theme-compiler\7.1.0\vaadin-theme-compiler-7.1.0.jar;C:\Users\a.schild\.m2\repository\org\apache\commons\commons-jexl\2.1.1\commons-jexl-2.1.1.jar;C:\Users\a.schild\.m2\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;C:\Users\a.schild\.m2\repository\net\sourceforge\cssparser\cssparser\0.9.5\cssparser-0.9.5.jar;C:\Users\a.schild\.m2\repository\commons-cli\commons-cli\1.2\commons-cli-1.2.jar;C:\Users\a.schild\.m2\repository\org\jsoup\jsoup\1.6.3\jsoup-1.6.3.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-client-compiled\7.1.0\vaadin-client-compiled-7.1.0.jar;C:\Users\a.schild\.m2\repository\com\vaadin\addon\vaadin-calendar\2.0.0\vaadin-calendar-2.0.0.jar;C:\Users\a.schild\.m2\repository\org\vaadin\addons\cssinject\2.0.3\cssinject-2.0.3.jar;C:\Users\a.schild\.m2\repository\com\google\code\gson\gson\2.2.4\gson-2.2.4.jar;C:\Users\a.schild\.m2\repository\com\aarboard\aarcat\195.2-SNAPSHOT\aarcat-195.2-SNAPSHOT.jar;C:\Users\a.schild\.m2\repository\com\aarboard\aarcat-core\2.7.1-2-SNAPSHOT\aarcat-core-2.7.1-2-SNAPSHOT.jar;C:\Users\a.schild\.m2\repository\org\aarboard\commons\1.4-5\commons-1.4-5.jar;C:\Users\a.schild\.m2\repository\commons-codec\commons-codec\1.4\commons-codec-1.4.jar;C:\Users\a.schild\.m2\repository\commons-fileupload\commons-fileupload\1.2.2\commons-fileupload-1.2.2.jar;C:\Users\a.schild\.m2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;C:\Users\a.schild\.m2\repository\org\directwebremoting\dwr\2.0.10\dwr-2.0.10.jar;C:\Users\a.schild\.m2\repository\org\quartz-scheduler\quartz\1.7.3\quartz-1.7.3.jar;C:\Users\a.schild\.m2\repository\opensymphony\oscache\2.4.1\oscache-2.4.1.jar;C:\Users\a.schild\.m2\repository\javax\jms\jms\1.1\jms-1.1.jar;C:\Users\a.schild\.m2\repository\javax\servlet\servlet-api\2.3\servlet-api-2.3.jar;C:\Users\a.schild\.m2\repository\com\googlecode\xmemcached\xmemcached\1.4.1\xmemcached-1.4.1.jar;C:\Users\a.schild\.m2\repository\org\slf4j\slf4j-api\1.5.6\slf4j-api-1.5.6.jar;C:\Users\a.schild\.m2\repository\jasperreports\jasperreports\3.5.2\jasperreports-3.5.2.jar;C:\Users\a.schild\.m2\repository\commons-beanutils\commons-beanutils\1.8.0\commons-beanutils-1.8.0.jar;C:\Users\a.schild\.m2\repository\commons-collections\commons-collections\2.1\commons-collections-2.1.jar;C:\Users\a.schild\.m2\repository\commons-digester\commons-digester\1.7\commons-digester-1.7.jar;C:\Users\a.schild\.m2\repository\com\lowagie\itext\2.1.0\itext-2.1.0.jar;C:\Users\a.schild\.m2\repository\bouncycastle\bcmail-jdk14\136\bcmail-jdk14-136.jar;C:\Users\a.schild\.m2\repository\bouncycastle\bcprov-jdk14\136\bcprov-jdk14-136.jar;C:\Users\a.schild\.m2\repository\jfree\jcommon\1.0.15\jcommon-1.0.15.jar;C:\Users\a.schild\.m2\repository\jfree\jfreechart\1.0.12\jfreechart-1.0.12.jar;C:\Users\a.schild\.m2\repository\xml-apis\xml-apis\1.3.02\xml-apis-1.3.02.jar;C:\Users\a.schild\.m2\repository\eclipse\jdtcore\3.1.0\jdtcore-3.1.0.jar;C:\Users\a.schild\.m2\repository\javax\ws\rs\jsr311-api\1.1.1\jsr311-api-1.1.1.jar;C:\Users\a.schild\.m2\repository\net\sf\ezmorph\ezmorph\1.0.6\ezmorph-1.0.6.jar;C:\Users\a.schild\.m2\repository\net\sf\json-lib\json-lib\2.4\json-lib-2.4-jdk15.jar;C:\Users\a.schild\.m2\repository\org\springframework\spring-jdbc\3.0.5.RELEASE\spring-jdbc-3.0.5.RELEASE.jar;C:\Users\a.schild\.m2\repository\org\springframework\spring-beans\3.0.5.RELEASE\spring-beans-3.0.5.RELEASE.jar;C:\Users\a.schild\.m2\repository\org\springframework\spring-core\3.0.5.RELEASE\spring-core-3.0.5.RELEASE.jar;C:\Users\a.schild\.m2\repository\org\springframework\spring-asm\3.0.5.RELEASE\spring-asm-3.0.5.RELEASE.jar;C:\Users\a.schild\.m2\repository\org\springframework\spring-tx\3.0.5.RELEASE\spring-tx-3.0.5.RELEASE.jar;C:\Users\a.schild\.m2\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;C:\Users\a.schild\.m2\repository\org\springframework\spring-aop\3.0.5.RELEASE\spring-aop-3.0.5.RELEASE.jar;C:\Users\a.schild\.m2\repository\org\springframework\spring-context\3.0.5.RELEASE\spring-context-3.0.5.RELEASE.jar;C:\Users\a.schild\.m2\repository\org\springframework\spring-expression\3.0.5.RELEASE\spring-expression-3.0.5.RELEASE.jar;C:\Users\a.schild\.m2\repository\it\sauronsoftware\jave\2.0\jave-2.0.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-client\7.1.0\vaadin-client-7.1.0.jar;C:\Users\a.schild\.m2\repository\org\w3c\css\sac\1.3\sac-1.3.jar;C:\Users\a.schild\.m2\repository\javax\validation\validation-api\1.0.0.GA\validation-api-1.0.0.GA.jar;C:\Users\a.schild\.m2\repository\javax\validation\validation-api\1.0.0.GA\validation-api-1.0.0.GA-sources.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-push\7.1.0\vaadin-push-7.1.0.jar;C:\Users\a.schild\.m2\repository\com\vaadin\external\atmosphere\atmosphere-runtime\1.0.14.vaadin3\atmosphere-runtime-1.0.14.vaadin3.jar;C:\Users\a.schild\.m2\repository\com\vaadin\external\atmosphere\atmosphere-compat-jbossweb\1.0.14.vaadin3\atmosphere-compat-jbossweb-1.0.14.vaadin3.jar;C:\Users\a.schild\.m2\repository\com\vaadin\external\atmosphere\atmosphere-compat-tomcat\1.0.14.vaadin3\atmosphere-compat-tomcat-1.0.14.vaadin3.jar;C:\Users\a.schild\.m2\repository\com\vaadin\external\atmosphere\atmosphere-compat-tomcat7\1.0.14.vaadin3\atmosphere-compat-tomcat7-1.0.14.vaadin3.jar;C:\Users\a.schild\.m2\repository\com\vaadin\external\slf4j\vaadin-slf4j-jdk14\1.6.1\vaadin-slf4j-jdk14-1.6.1.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-themes\7.1.0\vaadin-themes-7.1.0.jar;C:\Users\a.schild\.m2\repository\javax\servlet\javax.servlet-api\3.0.1\javax.servlet-api-3.0.1.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-client\7.1.0\vaadin-client-7.1.0.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-client-compiler\7.1.0\vaadin-client-compiler-7.1.0.jar;C:\Users\a.schild\.m2\repository\org\mortbay\jetty\jetty\6.1.11\jetty-6.1.11.jar;C:\Users\a.schild\.m2\repository\org\mortbay\jetty\jetty-util\6.1.11\jetty-util-6.1.11.jar;C:\Users\a.schild\.m2\repository\org\mortbay\jetty\servlet-api-2.5\6.1.11\servlet-api-2.5-6.1.11.jar;C:\Users\a.schild\.m2\repository\commons-io\commons-io\2.2\commons-io-2.2.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-server\7.1.0\vaadin-server-7.1.0.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-shared\7.1.0\vaadin-shared-7.1.0.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-shared-deps\1.0.2\vaadin-shared-deps-1.0.2.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-theme-compiler\7.1.0\vaadin-theme-compiler-7.1.0.jar;C:\Users\a.schild\.m2\repository\org\apache\commons\commons-jexl\2.1.1\commons-jexl-2.1.1.jar;C:\Users\a.schild\.m2\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;C:\Users\a.schild\.m2\repository\org\w3c\css\sac\1.3\sac-1.3.jar;C:\Users\a.schild\.m2\repository\net\sourceforge\cssparser\cssparser\0.9.5\cssparser-0.9.5.jar;C:\Users\a.schild\.m2\repository\commons-cli\commons-cli\1.2\commons-cli-1.2.jar;C:\Users\a.schild\.m2\repository\org\jsoup\jsoup\1.6.3\jsoup-1.6.3.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-client-compiler-deps\1.0.2\vaadin-client-compiler-deps-1.0.2.jar;C:\Users\a.schild\.m2\repository\org\jdesktop\swing-worker\1.1\swing-worker-1.1.jar;C:\Users\a.schild\.m2\repository\commons-collections\commons-collections\3.1\commons-collections-3.1.jar;C:\Users\a.schild\.m2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;C:\Users\a.schild\.m2\repository\org\apache\james\apache-mime4j\0.6\apache-mime4j-0.6.jar;C:\Users\a.schild\.m2\repository\ant\ant\1.6.5\ant-1.6.5.jar;C:\Users\a.schild\.m2\repository\com\vaadin\vaadin-client\7.1.0\vaadin-client-7.1.0.jar;C:\Users\a.schild\.m2\repository\javax\validation\validation-api\1.0.0.GA\validation-api-1.0.0.GA.jar;C:\Users\a.schild\.m2\repository\javax\validation\validation-api\1.0.0.GA\validation-api-1.0.0.GA-sources.jar;C:\Users\a.schild\.m2\repository\commons-codec\commons-codec\1.3\commons-codec-1.3.jar;C:\Users\a.schild\.m2\repository\ant\ant-launcher\1.6.5\ant-launcher-1.6.5.jar com.google.gwt.dev.Compiler -logLevel INFO -style OBF -war C:\Develop\Aarboard\Reservation\src\main\webapp\VAADIN\widgetsets -localWorkers 4 -strict -XfragmentCount -1 -extra C:\Develop\Aarboard\Reservation\target\extra -compileReport -gen C:\Develop\Aarboard\Reservation\target\.generated com.aarboard.reservation.reservation.AppWidgetSet
]] failed with status 1
-> [Help 1]


To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please read the following articles:
[Help 1]
 http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

You have a wrong version of JdtCompiler in your classpath before the right one (for example packaged inside ECJ library?). You can resolve the issue either by changing the dependency order in pom.xml (define Vaadin dependencies first) or setting <gwtSdkFirstInClasspath>true</gwtSdkFirstInClasspath> to vaadin-maven-plugin.

If you run into this in your own project when using the standard Vaadin 7.1.0 version, I suspect there are some stale classes or precompiled classes around in your project. Try to clean the project, remove any gwt-unitCache directories and recompile.

EDIT: My memory did not serve me well, see Mika’s answer instead.

Thanks,

this did the trick.
Here the correct place in the pom.xml for the gwtSdkFirstInClasspath thing.


            <plugin>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin-maven-plugin</artifactId>
                <version>${vaadin.plugin.version}</version>
                <configuration>
                    <gwtSdkFirstInClasspath>true</gwtSdkFirstInClasspath>
                    <extraJvmArgs>-Xmx512M -Xss1024k</extraJvmArgs>

This fixed my issue with xml parser.
The default code was picking up piccolo which was failing as it is not a fully acid compliant xml parser, but is extremely fast for some kind of xml parsing.
Moving my custom jars at the end of the dependency line allowed the gwt compiler to pick up xerces.

Thank you.