2010-09-16 12 views
0

J'ai compilé mon application toute la journée absolument bien, mais il a soudainement commencé à échouer. Comme vous pouvez le voir ci-dessous, c'est un NullPointException mais je n'ai aucune idée de ce qui ne va pas. Est-ce que quelqu'un a traité cela auparavant, ou peut-il offrir de l'aide ou des conseils?Erreur de compilation GWT

[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) 
+0

Quelle est la version de GWT? Avez-vous essayé avec un plus récent? –

Répondre

0

Tout d'abord, si la mise à jour GWT ne fonctionne pas, rétablissez votre code à un travail connu version si vous le pouvez.

J'ai vu ce message d'erreur du compilateur en essayant de compiler des sources boguées, contenant des erreurs en invoquant une méthode sur une variable d'un type défini par l'utilisateur dont aucune instance n'est jamais construite (dans l'unité de compilation) ...

Je suis certain que le problème suivant peut produire l'erreur que vous voyez, je l'ai juste reproduite pour être sûr. Bien sûr, cela ne signifie pas que c'est votre problème, mais cela pourrait vous donner quelque chose à rechercher.

compilateur échoue avec NullPointerException:

MyDumbClass foo; 
foo.doSomething(); 

Aucun problème:

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

Je pense ... et je suis tout à fait deviner ... cela a à voir avec le fait que GWT uniquement les sorties javascript pour les choses que vous appelez réellement, donc il doit construire un graphe d'appel à partir du point d'entrée et laisser tout le reste hors de la sortie ... il se peut que dans cet algorithme il rejette MyDumbClass, ou le type imbriqué de MyDumbClass.

0

Avez-vous effectué une mise à jour vers une version plus récente de GWT et n'avez pas mis à jour les fichiers jar dépendants?

Enunciate dépend par défaut des pots GWT 1.5.2. Mais si vous voulez mettre à jour vers une version plus récente de Enunciate, vous devrez peut-être mettre à jour vos dépendances à la nouvelle version:

<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>