There’s a bug in the latest Java 1.6 that Apple provides that gets tickled by the GWT 1.6 compiler. It manifests as a reproducible HotSpot compiler crash that looks like this:
[java] Invalid memory access of location 00000000 rip=01160767
When you look into the crash logs that Java produces (found under ~/Library/Logs/CrashReporter/java_*), you can see that HotSpot was compiling a method when it crashed:
Java VM: Java HotSpot(TM) 64-Bit Server VM (1.6.0_07-b06-57 mixed mode macosx-amd64) Current thread (0x0000000101843800): JavaThread "CompilerThread1" daemon [_thread_in_native, id=1756672000, stack(0x0000000168a4b000,0x0000000168b4b000)] Stack: [0x0000000168a4b000,0x0000000168b4b000] Current CompileTask: C2:637 org.eclipse.jdt.internal.compiler.lookup.ParameterizedMethodBinding.<init>(Lorg/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;)V (596 bytes)
The workaround is to disable JIT of some JDT methods using some advanced JVM command-line arguments. Using Ant, you can tack them on to your GWT compiler task <java> blocks, like so:
<java classname="com.google.gwt.dev.Compiler" classpathref="compileClassPath@{module}" fork="true" failonerror="true">
...
<jvmarg value="-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith" />
<jvmarg value="-XX:CompileCommand=exclude,org/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding,<init>" />
<jvmarg value="-XX:CompileCommand=exclude,org/eclipse/jdt/internal/compiler/lookup/ParameterizedMethodBinding,<init>" />
By applying those commands, you ask the HotSpot compiler to skip those methods (relying on the interpreter to run them). You’ll know it’s working if you see this during your compile:
[java] CompilerOracle: exclude org/eclipse/core/internal/dtree/DataTreeNode.forwardDeltaWith [java] CompilerOracle: exclude org/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding.<init> [java] CompilerOracle: exclude org/eclipse/jdt/internal/compiler/lookup/ParameterizedMethodBinding.<init> [java] Compiling module com.dotspots.ExtensionModule
I’m hoping that Apple eventually gets around to releasing an updated Java 1.6 for OSX. This bug was fixed in mainline Java a very long time ago!

[...] is the same error I hit before (see my earlier post), but it happens in Eclipse during the “deploy to AppEngine” phase. You’ll see [...]
[...] blogged about the subject of GWT JVM crashes far too much (here and here). This is, I hope, the final word on the subject. I spent some time disassembling the [...]
Hey! Thanks for the workaround!
Just wanted to point that this problem occurs not only on Apple, we also faced it on a Linux 64 bits server. The same workaround worked and now we’re hoping the sysadmin will soon upgrade the JVM.
Thank you!
Luiz
And for maven compilation:
<![CDATA["-XX:CompileCommand=exclude,org/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding,"]]>
<![CDATA["-XX:CompileCommand=exclude,org/eclipse/jdt/internal/compiler/lookup/ParameterizedMethodBinding,"]]>
…
org.codehaus.mojo
gwt-maven-plugin
${gwt.plugin.maven}
com.foo.bar
-Xmx512m ${gwt.arg1} ${gwt.arg2} ${gwt.arg3}
compile
<properties>
<gwt.arg1><![CDATA["-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith"]]></gwt.arg1>
<gwt.arg2><![CDATA["-XX:CompileCommand=exclude,org/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding,<init>"]]></gwt.arg2>
<gwt.arg3><![CDATA["-XX:CompileCommand=exclude,org/eclipse/jdt/internal/compiler/lookup/ParameterizedMethodBinding,<init>"]]></gwt.arg3>
</properties>
…
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>${gwt.plugin.maven}</version>
<executions>
<execution>
<configuration>
<modules>
<module>com.foo.Bar</module>
</modules>
<extraJvmArgs>-Xmx512m ${gwt.arg1} ${gwt.arg2} ${gwt.arg3}</extraJvmArgs>
</configuration>
thanks!
this was a head scratcher, as it was still broken even with 1.6.0_05-b13