Adding Elemental to GWT

爱⌒轻易说出口 提交于 2020-01-01 19:55:11

问题


I have a GWT maven multi module project. It runs fine with mvn gwt:run - but when I add in <inherits name='elemental.Elemental'/> to the gwt.xml file, I get the error below.

Key point appears to be something in JSNI breaking on traversal?

    Caused by: java.lang.IndexOutOfBoundsException: Index: 13, Size: 13 
    at java.util.ArrayList.rangeCheck(ArrayList.java:604) 
    at java.util.ArrayList.get(ArrayList.java:382) 
    at com.google.gwt.dev.shell.CompilingClassLoader$DispatchClassInfoOracle.getClassInfoByDispId(CompilingClassLoader.java:120) 
    at com.google.gwt.dev.shell.CompilingClassLoader.getClassInfoByDispId(CompilingClassLoader.java:1014) 
    at com.google.gwt.dev.shell.Jsni$JsSourceGenWithJsniIdentFixup.visit(Jsni.java:177)  

I tried debugging it but I can't seem to track down anything. Any ideas?

00:00:19.630 [ERROR] Unable to load module entry point class com.rc.gloopsh.admin.AdminEntryPoint (see associated exception for details) com.google.gwt.dev.jjs.InternalCompilerException: Unexpected error during visit. at com.google.gwt.dev.js.ast.JsVisitor.translateException(JsVisitor.java:483) at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:470) at com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445) at com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109) at com.google.gwt.dev.js.JsToStringGenerationVisitor.visit(JsToStringGenerationVisitor.java:893) at com.google.gwt.dev.js.ast.JsReturn.traverse(JsReturn.java:49) at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468) at com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445) at com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109) at com.google.gwt.dev.js.JsToStringGenerationVisitor.printJsBlock(JsToStringGenerationVisitor.java:1032) at com.google.gwt.dev.js.JsSourceGenerationVisitor.visit(JsSourceGenerationVisitor.java:59) at com.google.gwt.dev.js.ast.JsBlock.traverse(JsBlock.java:47) at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468) at com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445) at com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109) at com.google.gwt.dev.shell.Jsni.generateJavaScriptForHostedMode(Jsni.java:253) at com.google.gwt.dev.shell.Jsni.getJavaScriptForHostedMode(Jsni.java:241) at com.google.gwt.dev.shell.ModuleSpaceOOPHM.createNativeMethods(ModuleSpaceOOPHM.java:52) at com.google.gwt.dev.shell.CompilingClassLoader.injectJsniMethods(CompilingClassLoader.java:1380) at com.google.gwt.dev.shell.CompilingClassLoader.findClass(CompilingClassLoader.java:1151) at com.google.gwt.dev.shell.CompilingClassLoader.loadClass(CompilingClassLoader.java:1196) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at com.google.gwt.user.client.DOM.appendChild(DOM.java:66) at com.google.gwt.user.client.ui.Hyperlink.(Hyperlink.java:191) at com.google.gwt.user.client.ui.Hyperlink.(Hyperlink.java:90) at com.google.gwt.user.client.ui.Hyperlink.(Hyperlink.java:181) at com.google.gwt.user.client.ui.Hyperlink.(Hyperlink.java:140) at com.rc.gloopsh.resources.GloopshNav.addNav(GloopshNav.java:34) at com.rc.gloopsh.admin.AdminEntryPoint.onModuleLoad(AdminEntryPoint.java:29) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:406) at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200) at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:526) at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.IndexOutOfBoundsException: Index: 13, Size: 13 at java.util.ArrayList.rangeCheck(ArrayList.java:604) at java.util.ArrayList.get(ArrayList.java:382) at com.google.gwt.dev.shell.CompilingClassLoader$DispatchClassInfoOracle.getClassInfoByDispId(CompilingClassLoader.java:120) at com.google.gwt.dev.shell.CompilingClassLoader.getClassInfoByDispId(CompilingClassLoader.java:1014) at com.google.gwt.dev.shell.Jsni$JsSourceGenWithJsniIdentFixup.visit(Jsni.java:177) at com.google.gwt.dev.js.ast.JsInvocation.traverse(JsInvocation.java:69) at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468) at com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445) at com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109) at com.google.gwt.dev.js.JsToStringGenerationVisitor.visit(JsToStringGenerationVisitor.java:893) at com.google.gwt.dev.js.ast.JsReturn.traverse(JsReturn.java:49) at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468) at com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445) at com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109) at com.google.gwt.dev.js.JsToStringGenerationVisitor.printJsBlock(JsToStringGenerationVisitor.java:1032) at com.google.gwt.dev.js.JsSourceGenerationVisitor.visit(JsSourceGenerationVisitor.java:59) at com.google.gwt.dev.js.ast.JsBlock.traverse(JsBlock.java:47) at com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468) at com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445) at com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109) at com.google.gwt.dev.shell.Jsni.generateJavaScriptForHostedMode(Jsni.java:253) at com.google.gwt.dev.shell.Jsni.getJavaScriptForHostedMode(Jsni.java:241) at com.google.gwt.dev.shell.ModuleSpaceOOPHM.createNativeMethods(ModuleSpaceOOPHM.java:52) at com.google.gwt.dev.shell.CompilingClassLoader.injectJsniMethods(CompilingClassLoader.java:1380) at com.google.gwt.dev.shell.CompilingClassLoader.findClass(CompilingClassLoader.java:1151) at com.google.gwt.dev.shell.CompilingClassLoader.loadClass(CompilingClassLoader.java:1196) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at com.google.gwt.user.client.DOM.appendChild(DOM.java:66) at com.google.gwt.user.client.ui.Hyperlink.(Hyperlink.java:191) at com.google.gwt.user.client.ui.Hyperlink.(Hyperlink.java:90) at com.google.gwt.user.client.ui.Hyperlink.(Hyperlink.java:181) at com.google.gwt.user.client.ui.Hyperlink.(Hyperlink.java:140) at com.rc.gloopsh.resources.GloopshNav.addNav(GloopshNav.java:34) at com.rc.gloopsh.admin.AdminEntryPoint.onModuleLoad(AdminEntryPoint.java:29) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:406) at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200) at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:526) at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364) at java.lang.Thread.run(Thread.java:722)


回答1:


This is a known issue; for now you'll have to use SuperDevMode if you use Elemental.




回答2:


Seem there is something in elemental.Elemental which can not be compiled by the GWTJS compiler. Since Elemental is experimental things like this can happen...



来源:https://stackoverflow.com/questions/17428265/adding-elemental-to-gwt

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!