/ / Fontes da biblioteca não estão disponíveis no SuperDevMode - java, gwt, google-plugin-eclipse, gwt-super-dev-mode

As fontes da biblioteca não estão disponíveis no SuperDevMode - modo java, gwt, google-plugin-eclipse, gwt-super-dev-mode

Eu criei um projeto de demonstração Aqui.

Compila com GWT compila sem problemas do Eclipse. Quando executo o aplicativo no SuperDevMode, a primeira compilação falhou com os seguintes erros:

        Compiling 1 permutation
Compiling permutation 0...
[ERROR] An internal compiler exception occurred
com.google.gwt.dev.jjs.InternalCompilerException: Unexpected error during visit.
at com.google.gwt.dev.jjs.ast.JVisitor.translateException(JVisitor.java:121)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:140)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:132)
at com.google.gwt.dev.jjs.impl.Devirtualizer.getStaticImpl(Devirtualizer.java:562)
at com.google.gwt.dev.jjs.impl.Devirtualizer.access$400(Devirtualizer.java:75)
at com.google.gwt.dev.jjs.impl.Devirtualizer$RewriteVirtualDispatches.ensureDevirtualVersionExists(Devirtualizer.java:184)
at com.google.gwt.dev.jjs.impl.Devirtualizer$RewriteVirtualDispatches.endVisit(Devirtualizer.java:101)
at com.google.gwt.dev.jjs.ast.JMethod.traverse(JMethod.java:580)
at com.google.gwt.dev.jjs.ast.JModVisitor$ListContextImmutable.traverse(JModVisitor.java:183)
at com.google.gwt.dev.jjs.ast.JModVisitor.acceptWithInsertRemoveImmutable(JModVisitor.java:355)
at com.google.gwt.dev.jjs.ast.JInterfaceType.traverse(JInterfaceType.java:75)
at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:380)
at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:292)
at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:284)
at com.google.gwt.dev.jjs.ast.JProgram.visitModuleTypes(JProgram.java:1192)
at com.google.gwt.dev.jjs.ast.JProgram.traverse(JProgram.java:1156)
at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:380)
at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:292)
at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:284)
at com.google.gwt.dev.jjs.impl.Devirtualizer.execImpl(Devirtualizer.java:320)
at com.google.gwt.dev.jjs.impl.Devirtualizer.exec(Devirtualizer.java:218)
at com.google.gwt.dev.jjs.MonolithicJavaToJavaScriptCompiler$MonolithicPermutationCompiler.normalizeSemantics(MonolithicJavaToJavaScriptCompiler.java:95)
at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.compilePermutation(JavaToJavaScriptCompiler.java:290)
at com.google.gwt.dev.jjs.MonolithicJavaToJavaScriptCompiler.compilePermutation(MonolithicJavaToJavaScriptCompiler.java:296)
at com.google.gwt.dev.jjs.UnifiedAst.compilePermutation(UnifiedAst.java:143)
at com.google.gwt.dev.CompilePerms.compile(CompilePerms.java:197)
at com.google.gwt.dev.ThreadedPermutationWorkerFactory$ThreadedPermutationWorker.compile(ThreadedPermutationWorkerFactory.java:50)
at com.google.gwt.dev.PermutationWorkerFactory$Manager$WorkerThread.run(PermutationWorkerFactory.java:74)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:137)
... 27 more
[ERROR] <no source info>: <source info not available>
[ERROR] at JsonElement.java(19): public abstract JsonElement clear();

com.google.gwt.dev.jjs.ast.JMethod
[ERROR] at JsonElement.java(18): interface JsonElement extends Serializable
com.google.gwt.dev.jjs.ast.JInterfaceType
[ERROR] at Unknown(0): <JProgram>
com.google.gwt.dev.jjs.ast.JProgram
[ERROR] Unrecoverable exception, shutting down
com.google.gwt.core.ext.UnableToCompleteException: (see previous log entries)
at com.google.gwt.dev.javac.CompilationProblemReporter.logAndTranslateException(CompilationProblemReporter.java:106)
at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$PermutationCompiler.compilePermutation(JavaToJavaScriptCompiler.java:367)
at com.google.gwt.dev.jjs.MonolithicJavaToJavaScriptCompiler.compilePermutation(MonolithicJavaToJavaScriptCompiler.java:296)
at com.google.gwt.dev.jjs.UnifiedAst.compilePermutation(UnifiedAst.java:143)
at com.google.gwt.dev.CompilePerms.compile(CompilePerms.java:197)
at com.google.gwt.dev.ThreadedPermutationWorkerFactory$ThreadedPermutationWorker.compile(ThreadedPermutationWorkerFactory.java:50)
at com.google.gwt.dev.PermutationWorkerFactory$Manager$WorkerThread.run(PermutationWorkerFactory.java:74)
at java.lang.Thread.run(Thread.java:745)
[ERROR] Not all permutation were compiled , completed (0/1)
[WARN] recompile failed
[WARN] continuing to serve previous version

A biblioteca usa o <super-source path="super" /> tag. Na documentação do GWT que encontrei (http://www.gwtproject.org/doc/latest/DevGuideOrganizingProjects.html)

"No modo de desenvolvimento, as classes JRE nativas sempre substituem as classes compiladas a partir do código-fonte."

Isso é um problema porque não consigo usar a lib no SuperDevMode.

Existe alguma maneira de corrigir isso? Posso omitir a tag super-source de alguma forma?

Respostas:

1 para resposta № 1

Você está usando um código java não preparado para GWT, parece que o problema é JsonElement que provavelmente vem de com.google.gson que é uma biblioteca não compatível com GWT.

Você pode ler a codificação GWT compatibilidade e jre documentação de emulação.


1 para resposta № 2

Caso possa ajudar, eu tive um problema semelhante, devido a um static campo em uma classe anônima (String No meu caso); embora isso seja aceito no JDK padrão e de emulação GWT, parece causar o acima mencionado com.google.gwt.dev.jjs.InternalCompilerException na inicialização do SuperDevMode (estou usando GWT 2.7.0). Apenas mover o campo ofensivo para fora da classe anônima foi o suficiente para se livrar da exceção.