Hi there,
I am maintaining my project and did some upgrades including gwt 2.8.2 from 
2.7.0.
Now my JUnit based on GwtTestCase is failing with:

java.lang.NoSuchFieldError: FIREFOX_38
    at 
com.google.gwt.junit.RunStyleHtmlUnit.<clinit>(RunStyleHtmlUnit.java:203)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.google.gwt.junit.JUnitShell.createRunStyle(JUnitShell.java:1181)
    at com.google.gwt.junit.JUnitShell.doStartup(JUnitShell.java:942)
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:913)
    at com.google.gwt.junit.JUnitShell.getUnitTestShell(JUnitShell.java:698)
    at com.google.gwt.junit.JUnitShell.runTest(JUnitShell.java:672)
    at com.google.gwt.junit.client.GWTTestCase.runTest(GWTTestCase.java:421)
    at junit.framework.TestCase.runBare(TestCase.java:141)
    at junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit.framework.TestResult.run(TestResult.java:125)
    at junit.framework.TestCase.run(TestCase.java:129)
    at com.google.gwt.junit.client.GWTTestCase.run(GWTTestCase.java:247)
    at junit.framework.TestSuite.runTest(TestSuite.java:252)
    at junit.framework.TestSuite.run(TestSuite.java:247)
    at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
    at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
    at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
    at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
    at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)

I found out that gwt-dev is depending on htmlunit 2.19 but due some 
dependency management I was using 2.29 instead.

So I overrode this again in my pom.xml:

    <dependency>
      <groupId>net.sourceforge.htmlunit</groupId>
      <artifactId>htmlunit</artifactId>
      <version>2.19</version>
      <scope>test</scope>
    </dependency>

Now I am getting this error:

java.lang.NoClassDefFoundError: com/gargoylesoftware/htmlunit/BrowserVersion
    at 
com.google.gwt.junit.RunStyleHtmlUnit.<clinit>(RunStyleHtmlUnit.java:202)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.google.gwt.junit.JUnitShell.createRunStyle(JUnitShell.java:1181)
    at com.google.gwt.junit.JUnitShell.doStartup(JUnitShell.java:942)
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:913)
    at com.google.gwt.junit.JUnitShell.getUnitTestShell(JUnitShell.java:698)
    at com.google.gwt.junit.JUnitShell.runTest(JUnitShell.java:672)
    at com.google.gwt.junit.client.GWTTestCase.runTest(GWTTestCase.java:421)
    at junit.framework.TestCase.runBare(TestCase.java:141)
    at junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit.framework.TestResult.run(TestResult.java:125)
    at junit.framework.TestCase.run(TestCase.java:129)
    at com.google.gwt.junit.client.GWTTestCase.run(GWTTestCase.java:247)
    at junit.framework.TestSuite.runTest(TestSuite.java:252)
    at junit.framework.TestSuite.run(TestSuite.java:247)
    at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
    at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
    at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
    at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
    at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
Caused by: java.lang.ClassNotFoundException: 
com.gargoylesoftware.htmlunit.BrowserVersion
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 24 more

What is also interesting: When I do go to BrowserVersion.class in the 
htmlunit-2.29.jar of my maven-dependencies in Eclipse, it opens fine and 
shows the sources.
However, with version 2.19 Eclipse does not open BrowserVersion.class 
properly and instead shows:
java.util.zip.ZipException: invalid LOC header (bad signature)
    at java.util.zip.ZipFile.read(Native Method)
    at java.util.zip.ZipFile.access$1400(ZipFile.java:60)
...

So to me it seems like this:
-gwt-dev is hardwired against htmlunit 2.19 and refers to specific 
BrowserVersion constant fields that are gone in newer versions.
-for some strange reason htmlunit 2.19 deployment in maven central is 
broken (has a damaged JAR deployed to the world)

Any ideas or workarounds? I already tried 2.18 and 2.20 with no luck (e.g. 
getting NoSuchFieldError: INTERNET_EXPLORER_8).
Seems I am locked out by gwt. Also does not work with 2.8.1.

Thanks in advance for any hint or suggestion.

Kind regards
  Jörg

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/e663de61-32a3-4170-9885-b59c809d6796%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to