Режим разработки GWT выдает исключение ArrayIndexOutOfBoundsException при компиляции GinjectorImpl.java

Я получаю следующее исключение, когда открываю свое приложение GWT в режиме разработки. точно такой же код можно успешно скомпилировать с помощью mvn gwt: compile

Вызвано: java.lang.ArrayIndexOutOfBoundsException: 3667 в com.google.gwt.dev.asm.ClassReader.readClass (ClassReader.java:1976) в com.google.gwt.dev.asm.ClassReader.accept (ClassReader.java: 464) на com.google.gwt.dev.asm.ClassReader.accept (ClassReader.java:420) на com.google.gwt.dev.shell.rewrite.HasAnnotation.hasAnnotation (HasAnnotation.java:45) на com.google .gwt.dev.shell.CompilingClassLoader.findClass (CompilingClassLoader.java:1100) на com.google.gwt.dev.shell.CompilingClassLoader.loadClass (CompilingClassLoader.java:1203) в java.lang.ClassLoader.loadClass (ClassLoader.javaLoader : 247) в java.lang.Class.forName0 (собственный метод) в java.lang.Class.forName (Class.java:247) в com.google.gwt.dev.shell.ModuleSpace.loadClassFromSourceName (ModuleSpace.java:665 ) на com.google.gwt.dev.shell.ModuleSpace.rebindAndCreate (ModuleSpace.java:468) на com.google.gwt.dev.shell.GWTBridgeImpl.create (GWTBridgeImpl.java:49) на com.google.gwt. core.s hared.GWT.create (GWT.java:57) в com.google.gwt.core.client.GWT.create (GWT.java:85) в ...

Я переборщил с ModuleSpace.java и распечатал имя класса в строке 665 перед Class.forName (), что указывает на то, что он пытается загрузить сгенерированный GinjectorImpl.java

Я обнаружил, что мой сгенерированный GinjectorImpl.java занимает около 9 МБ и содержит более 100 тыс. Строк кода.

Когда я случайным образом удаляю некоторые модули из своего приложения GWT, оно снова работает, поэтому я предполагаю, что оно слишком велико для компиляции ASM.

Какие-либо предложения? Спасибо

Среда: GWT 2.5.0, GIN 1.5.0, gwt-maven-plugin 2.5.0, Java 6 SE


person Jiang Zhu    schedule 07.12.2012    source источник


Ответы (2)


Попробуйте удалить папку gwt-unitCache и снова запустить gwt-compile. Это исправило это для меня.

person dkris    schedule 11.09.2013

Обновление GIN до 2.0.0 устранило мою проблему

размер сгенерированного Ginjector.java уменьшится с 110К + строк до 23 строк :)

person Jiang Zhu    schedule 07.12.2012