在编译过程中,可能会出现堆栈错误,请问可能是什么原因呢?我正在使用 Eclipse 3.7 和 GWT 2+。
[错误] 意外的内部编译器错误 `java.lang.ArrayIndexOutOfBoundsException: 986507` 在 `com.google.gwt.dev.asm.ClassReader.readUnsignedShort(ClassReader.java:1850)` 处。在 `com.google.gwt.dev.asm.ClassReader.accept(ClassReader.java:484)` 和 `com.google.gwt.dev.asm.ClassReader.accept(ClassReader.java:420)` 处。在 `com.google.gwt.dev.javac.TypeOracleMediator$TypeData.getCollectClassData(TypeOracleMediator.java:147)` 处获取收集类数据。在 `com.google.gwt.dev.javac.TypeOracleMediator.addNewTypes(TypeOracleMediator.java:390)` 处添加新类型。在 `com.google.gwt.dev.javac.TypeOracleMediatorFromSource.addNewUnits(TypeOracleMediatorFromSource.java:52)` 处添加新单元。在 `com.google.gwt.dev.javac.CompilationState.assimilateUnits(CompilationState.java:164)` 处同化单元。在 `com.google.gwt.dev.javac.CompilationState.(CompilationState.java:82)` 处。在 `com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:450)` 和 `com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:370)` 处构建编译状态。在 `com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:360)` 处获取编译状态。在 `com.google.gwt.dev.Precompile.precompile(Precompile.java:252)`、`com.google.gwt.dev.Precompile.precompile(Precompile.java:233)` 和 `com.google.gwt.dev.Precompile.precompile(Precompile.java:145)` 处预编译。在 `com.google.gwt.dev.Compiler.run(Compiler.java:232)`、`com.google.gwt.dev.Compiler.run(Compiler.java:198)` 和 `com.google.gwt.dev.Compiler$1.run(Compiler.java:170)` 处运行编译器。在 `com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88)` 和 `com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:82)` 处运行任务。在 `com.google.gwt.dev.Compiler.main(Compiler.java:177)` 处。关闭持久单元缓存线程。在 "UnitWriteThread" 线程中的异常:`java.lang.NullPointerException` 在 `com.google.gwt.dev.util.DiskCache.transferToStream(DiskCache.java:183)` 处。在 `com.google.gwt.dev.javac.CompiledClass.writeObject(CompiledClass.java:163)` 处写入对象。在 `sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)`、`sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)` 和 `java.lang.reflect.Method.invoke(Unknown Source)` 处。在 `java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)` 处调用 `writeObject` 方法。在 `java.io.ObjectOutputStream.writeSerialData(Unknown Source)` 和 `java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)` 处写入序列化数据和普通对象。在 `java.io.ObjectOutputStream.writeObject0(Unknown Source)` 和 `java.io.ObjectOutputStream.writeArray(Unknown Source)` 处写入对象和数组。在 `java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)` 和 `java.io.ObjectOutputStream.writeObject(Unknown Source)` 处写入默认字段和对象。在 `com.google.gwt.dev.javac.PersistentUnitCache$UnitWriter.run(PersistentUnitCache.java:226)` 处运行单元写入。