2016-03-13 8 views
2

Мой компилятор GWT начал работать с ошибкой NoSuchMethodError. Это началось, когда я обновил параметр метода от длинного до длинного. Мне не нужно, но я попытался переключить его, и у меня все еще такая же ошибка. Мой компилятор java eclipse runtime не видит строку как ошибку, и все работает нормально в режиме dev.Компилятор GWT NoSuchMethodError

Caused by: java.lang.NoSuchMethodError: com.dscicorp.ribeye.shared.dto.Data.put(Ljava/lang/String;Ljava/lang/Long)Ljava/lang/String; 

Похоже, что он рассматривает длинные и длинные как разные типы. Вот что фактический метод выглядит следующим образом:

public String put(String key, long value) { 
    return put(key, Long.toString(value)); 
} 

Я не уверен, если это что-то делать с ним, но в сообщении об ошибке он выводит строку несколько иначе, чем то, что в моем коде. Он заменил длинную переменную «val» на «Long.valueOf (val)».

this.this$01.reportOptions.put("noteTypes", Long.valueOf(val)) 

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

Вот полный лог составитель:

gwtc: 
[java] Compiling module com.dscicorp.ribeye.RibEye 
[java] Computing all possible rebind results for 'com.dscicorp.ribeye.client.generated.ReflectiveFactory' 
[java]  Rebinding com.dscicorp.ribeye.client.generated.ReflectiveFactory 
[java]   Invoking generator com.dscicorp.ribeye.generator.FactoryGenerator 
[java]    Generating source for com.dscicorp.ribeye.client.generated.ReflectiveFactory 
[java]  Rebinding com.dscicorp.ribeye.client.generated.ReflectiveFactory 
[java]   Invoking generator com.dscicorp.ribeye.generator.FactoryGenerator 
[java]    Generating source for com.dscicorp.ribeye.client.generated.ReflectiveFactory 
[java]  Rebinding com.dscicorp.ribeye.client.generated.ReflectiveFactory 
[java]   Invoking generator com.dscicorp.ribeye.generator.FactoryGenerator 
[java]    Generating source for com.dscicorp.ribeye.client.generated.ReflectiveFactory 
[java]  Rebinding com.dscicorp.ribeye.client.generated.ReflectiveFactory 
[java]   Invoking generator com.dscicorp.ribeye.generator.FactoryGenerator 
[java]    Generating source for com.dscicorp.ribeye.client.generated.ReflectiveFactory 
[java]  Rebinding com.dscicorp.ribeye.client.generated.ReflectiveFactory 
[java]   Invoking generator com.dscicorp.ribeye.generator.FactoryGenerator 
[java]    Generating source for com.dscicorp.ribeye.client.generated.ReflectiveFactory 
[java] [ERROR] An internal compiler exception occurred 
[java] com.google.gwt.dev.jjs.InternalCompilerException: Unexpected error during visit. 
[java]  at com.google.gwt.dev.jjs.ast.JVisitor.translateException(JVisitor.java:121) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:296) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:285) 
[java]  at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:128) 
[java]  at com.google.gwt.dev.jjs.ast.JExpressionStatement.traverse(JExpressionStatement.java:42) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor$ListContext.traverse(JModVisitor.java:95) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.acceptWithInsertRemove(JModVisitor.java:351) 
[java]  at com.google.gwt.dev.jjs.ast.JBlock.traverse(JBlock.java:92) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293) 
[java]  at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:149) 
[java]  at com.google.gwt.dev.jjs.ast.JIfStatement.traverse(JIfStatement.java:53) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor$ListContext.traverse(JModVisitor.java:95) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.acceptWithInsertRemove(JModVisitor.java:351) 
[java]  at com.google.gwt.dev.jjs.ast.JBlock.traverse(JBlock.java:92) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293) 
[java]  at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:149) 
[java]  at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:145) 
[java]  at com.google.gwt.dev.jjs.ast.JMethodBody.traverse(JMethodBody.java:83) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:285) 
[java]  at com.google.gwt.dev.jjs.ast.JMethod.visitChildren(JMethod.java:600) 
[java]  at com.google.gwt.dev.jjs.ast.JMethod.traverse(JMethod.java:569) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:285) 
[java]  at com.google.gwt.dev.jjs.impl.UnifyAst.mainLoop(UnifyAst.java:1505) 
[java]  at com.google.gwt.dev.jjs.impl.UnifyAst.exec(UnifyAst.java:870) 
[java]  at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$Precompiler.unifyJavaAst(JavaToJavaScriptCompiler.java:1305) 
[java]  at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$Precompiler.constructJavaAst(JavaToJavaScriptCompiler.java:1038) 
[java]  at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$Precompiler.precompile(JavaToJavaScriptCompiler.java:954) 
[java]  at com.google.gwt.dev.jjs.MonolithicJavaToJavaScriptCompiler.precompile(MonolithicJavaToJavaScriptCompiler.java:303) 
[java]  at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:38) 
[java]  at com.google.gwt.dev.Precompile.precompile(Precompile.java:286) 
[java]  at com.google.gwt.dev.Precompile.precompile(Precompile.java:229) 
[java]  at com.google.gwt.dev.Precompile.precompile(Precompile.java:145) 
[java]  at com.google.gwt.dev.Compiler.run(Compiler.java:206) 
[java]  at com.google.gwt.dev.Compiler.run(Compiler.java:158) 
[java]  at com.google.gwt.dev.Compiler$1.run(Compiler.java:120) 
[java]  at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:55) 
[java]  at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:50) 
[java]  at com.google.gwt.dev.Compiler.main(Compiler.java:127) 
[java] Caused by: java.lang.NoSuchMethodError: com.dscicorp.ribeye.shared.dto.Data.put(Ljava/lang/String;Ljava/lang/Long;)Ljava/lang/String; 
[java]  at com.google.gwt.dev.jjs.impl.UnifyAst.translate(UnifyAst.java:1715) 
[java]  at com.google.gwt.dev.jjs.impl.UnifyAst.access$1100(UnifyAst.java:134) 
[java]  at com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.visit(UnifyAst.java:416) 
[java]  at com.google.gwt.dev.jjs.ast.JMethodCall.traverse(JMethodCall.java:245) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381) 
[java]  at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293) 
[java]  ... 42 more 
[java]  [ERROR] at MasterWorkLogSearchReportPage.java(281): this.this$01.reportOptions.put("noteTypes", Long.valueOf(val)) 
[java]   com.google.gwt.dev.jjs.ast.JMethodCall 
[java]  [ERROR] at MasterWorkLogSearchReportPage.java(281): this.this$01.reportOptions.put("noteTypes", Long.valueOf(val)) 
[java]   com.google.gwt.dev.jjs.ast.JExpressionStatement 
[java]  [ERROR] at MasterWorkLogSearchReportPage.java(280): { 
[java] this.this$01.reportOptions.put("noteTypes", Long.valueOf(val)); 
[java] } 
[java]   com.google.gwt.dev.jjs.ast.JBlock 
[java]  [ERROR] at MasterWorkLogSearchReportPage.java(280): if (val > 0) { 
[java] this.this$01.reportOptions.put("noteTypes", Long.valueOf(val)); 
[java] } else { 
[java] this.this$01.reportOptions.remove("noteTypes"); 
[java] } 
[java]   com.google.gwt.dev.jjs.ast.JIfStatement 
[java]  [ERROR] at MasterWorkLogSearchReportPage.java(277): { 
[java] long val = this.this$01.getNoteTypesValue(); 
[java] if (val > 0) { 
[java]  this.this$01.reportOptions.put("noteTypes", Long.valueOf(val)); 
[java] } else { 
[java]  this.this$01.reportOptions.remove("noteTypes"); 
[java] } 
[java] } 
[java]   com.google.gwt.dev.jjs.ast.JBlock 
[java]  [ERROR] at MasterWorkLogSearchReportPage.java(277): { 
[java] long val = this.this$01.getNoteTypesValue(); 
[java] if (val > 0) { 
[java]  this.this$01.reportOptions.put("noteTypes", Long.valueOf(val)); 
[java] } else { 
[java]  this.this$01.reportOptions.remove("noteTypes"); 
[java] } 
[java] } 
[java]   com.google.gwt.dev.jjs.ast.JMethodBody 
[java]  [ERROR] at MasterWorkLogSearchReportPage.java(277): public void execute(); 
[java] 
[java]   com.google.gwt.dev.jjs.ast.JMethod 
+0

NoSuchMethodError не исключение компилятора GWT, а исключение среды выполнения Java. Можете ли вы поделиться полным списком компиляторов и посмотреть, помогает ли очистка рабочего пространства? Кроме того, убедитесь, что вы компилируете с включенным '-strict', чтобы он не справился с первой ошибкой, вместо того, чтобы позволить снежнику использовать другие ошибки в нисходящем потоке. –

+0

Спасибо, что я разместил его. Теперь это ошибка при использовании метода long vs. Long, но это та же самая сделка. Все еще не удается найти метод put (String, Long) того же класса Data. – Zip184

+0

@ Zip184 Можете ли вы разместить то, что 'Data # put()' выглядит? – Baz

ответ

1

Я исправил проблему, создав новый проект Eclipse, и импортировать тот же код. Вероятно, это был какой-то вопрос кэширования, но очистка моего каталога gwt-unitCache не исправила его.