Ошибка компиляции GWT - PullRequest
       9

Ошибка компиляции GWT

0 голосов
/ 16 сентября 2010

Я весь день компилировал свое приложение абсолютно нормально, однако оно внезапно начало давать сбой.Как вы можете видеть ниже, это NullPointException, но я понятия не имею, что не так.Кто-нибудь имел дело с этим раньше, или может предложить какую-либо помощь или руководство?

[INFO] [enunciate:assemble {execution: default}]
[INFO] initializing enunciate.
[INFO] invoking enunciate:generate step...
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
[INFO] invoking enunciate:compile step...
[INFO] [gwt] Compiling module com.project.myProject
[INFO] [gwt] Validating newly compiled units
[INFO] [gwt] [ERROR] Unexpected
[INFO] [gwt] java.lang.NullPointerException
[INFO] [gwt] at com.google.gwt.dev.javac.JdtCompiler$FindTypesInCud.visit(JdtCompiler.java:179)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1253)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.QualifiedAllocationExpression.traverse(QualifiedAllocationExpression.java:478)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.MessageSend.traverse(MessageSend.java:576)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.ConstructorDeclaration.traverse(ConstructorDeclaration.java:505)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1239)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:687)
[INFO] [gwt] at com.google.gwt.dev.javac.JdtCompiler$CompilerImpl.process(JdtCompiler.java:158)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:444)
[INFO] [gwt] at com.google.gwt.dev.javac.JdtCompiler.doCompile(JdtCompiler.java:467)
[INFO] [gwt] at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:142)
[INFO] [gwt] at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:281)
[INFO] [gwt] at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:182)
[INFO] [gwt] at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:280)
[INFO] [gwt] at com.google.gwt.dev.Precompile.precompile(Precompile.java:502)
[INFO] [gwt] at com.google.gwt.dev.Precompile.precompile(Precompile.java:414)
[INFO] [gwt] at com.google.gwt.dev.Compiler.run(Compiler.java:201)
[INFO] [gwt] at com.google.gwt.dev.Compiler$1.run(Compiler.java:152)
[INFO] [gwt] at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:87)
[INFO] [gwt] at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:81)
[INFO] [gwt] at com.google.gwt.dev.Compiler.main(Compiler.java:159)

Ответы [ 2 ]

0 голосов
/ 19 сентября 2010

Во-первых, если обновление GWT не работает, верните ваш код в известную рабочую версию, если можете.

Я видел это сообщение об ошибке от компилятора при попытке скомпилировать ошибочные исходные коды, содержащие ошибки вдоль строк вызова метода для переменной пользовательского типа, экземпляр которого никогда не создается (в модуле компиляции) ...

Я уверен, что следующая проблема может вызвать ошибку, которую вы видите, я просто воспроизвел ее, чтобы убедиться. Конечно, это не значит, что это ваша проблема, но она может дать вам что-то искать.

Сбой компилятора с NullPointerException:

MyDumbClass foo;
foo.doSomething();

Нет проблем:

MyDumbClass foo = new MyDumbClass();
foo.doSomething();

Я думаю ... и я полностью догадываюсь ... это связано с тем фактом, что GWT выводит javascript только для того, что вы на самом деле вызываете, поэтому он должен построить граф вызовов, начиная с точки входа и выходить все остальное из вывода ... может случиться так, что в этом алгоритме он выбрасывает MyDumbClass или вложенный тип MyDumbClass.

0 голосов
/ 17 сентября 2010

Обновили ли вы более новую версию GWT и не обновили зависимые jar-файлы?

Enunciate по умолчанию зависит от GWT 1.5.2 jar-файловНо если вы хотите перейти на более новую версию Enunciate, вам может потребоваться обновить ваши зависимости до более новой версии:

<dependency>
  <groupId>com.google.gwt</groupId>
  <artifactId>gwt-user</artifactId>
  <version>2.0.0</version>
</dependency>

<dependency>
  <groupId>com.google.gwt</groupId>
  <artifactId>gwt-servlet</artifactId>
  <version>2.0.0</version>
</dependency>
...