-
1. Re: Marshalling with interfaces
jfuerth Jul 13, 2012 6:13 PM (in response to jervisliu)Hi Jervis,
Christian and I worked out a fix for this. Your scenario should be working with no changes required to your code as of the next 2.0.2-SNAPSHOT and 2.1-SNAPSHOT builds. We also ensured that our fix works for fields whose types are abstract classes.
(Of course all implementations of FieldConstraint that you want to send across the wire will have to be portable, but Errai will no longer complain about the interface field when generating the marshallers).
-Jonathan
-
2. Re: Marshalling with interfaces
jervisliu Jul 15, 2012 10:54 PM (in response to jfuerth)Hi Jonathan, thanks a lot for the quick fix. But I am afraid this is not working yet (I assume your fix has already gone into the snapshot build?). If I put org.drools.ide.common.client.modeldriven.brl.FieldConstraint in ErraiApp.properties as below:
org.drools.ide.common.client.modeldriven.brl.ExpressionFormLine \
org.drools.ide.common.client.modeldriven.brl.FieldConstraint
I got "cannot marshal an abstract class or interface" exception:
[INFO] Generating Marshallers Bootstrapper... [ERROR] Failed to boostrap errai marshalling system!
[ERROR] java.lang.RuntimeException: cannot marshal an abstract class or interfac
e: org.drools.ide.common.client.modeldriven.brl.FieldConstraint
[ERROR] at org.jboss.errai.marshalling.rebind.api.impl.defaultjava.Defau ltJavaDefinitionMapper.map(DefaultJavaDefinitionMapper.java:52)
[ERROR] at org.jboss.errai.marshalling.rebind.DefinitionsFactoryImpl.loa dCustomMappings(DefinitionsFactoryImpl.java:285)
[ERROR] at org.jboss.errai.marshalling.rebind.DefinitionsFactoryImpl.<in it>(DefinitionsFactoryImpl.java:76)
[ERROR] at org.jboss.errai.marshalling.rebind.DefinitionsFactorySingleto n.newInstance(DefinitionsFactorySingleton.java:41)
[ERROR] at org.jboss.errai.marshalling.rebind.DefinitionsFactorySingleto n.<clinit>(DefinitionsFactorySingleton.java:26)
[ERROR] at org.jboss.errai.marshalling.rebind.MarshallersGenerator.gener ate(MarshallersGenerator.java:220)
[ERROR] at com.google.gwt.core.ext.GeneratorExtWrapper.generate(Generato rExtWrapper.java:48)
[ERROR] at com.google.gwt.core.ext.GeneratorExtWrapper.generateIncrement ally(GeneratorExtWrapper.java:60)
[ERROR] at com.google.gwt.dev.javac.StandardGeneratorContext.runGenerato rIncrementally(StandardGeneratorContext.java:647)
[ERROR] at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateW ith.java:41)
[ERROR] at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind (StandardRebindOracle.java:78)
[ERROR] at com.google.gwt.dev.shell.StandardRebindOracle.rebind(Standard RebindOracle.java:268)
[ERROR] at com.google.gwt.dev.shell.StandardRebindOracle.rebind(Standard RebindOracle.java:257)
[ERROR] at com.google.gwt.dev.DistillerRebindPermutationOracle.getAllPos sibleRebindAnswers(DistillerRebindPermutationOracle.java:91)
[ERROR] at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.doFindAddition alTypesUsingRebinds(WebModeCompilerFrontEnd.java:96)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. process(AbstractCompiler.java:254)
[ERROR] at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.j ava:444)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. compile(AbstractCompiler.java:173)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. compile(AbstractCompiler.java:288)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. access$400(AbstractCompiler.java:139)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler.compile(AbstractCompi ler.java:588)
[ERROR] at com.google.gwt.dev.jdt.BasicWebModeCompiler.getCompilationUni tDeclarations(BasicWebModeCompiler.java:97)
[ERROR] at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.getCompilation UnitDeclarations(WebModeCompilerFrontEnd.java:52)
[ERROR] at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(Ja vaToJavaScriptCompiler.java:569)
[ERROR] at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScri ptCompiler.java:33)
[ERROR] at com.google.gwt.dev.Precompile.precompile(Precompile.java:284) [ERROR] at com.google.gwt.dev.Precompile.precompile(Precompile.java:233) [ERROR] at com.google.gwt.dev.Precompile.precompile(Precompile.java:145) [ERROR] at com.google.gwt.dev.Compiler.run(Compiler.java:232) [ERROR] at com.google.gwt.dev.Compiler.run(Compiler.java:198) [ERROR] at com.google.gwt.dev.Compiler$1.run(Compiler.java:170) [ERROR] at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner. java:88)
[ERROR] at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger (CompileTaskRunner.java:82)
[ERROR] at com.google.gwt.dev.Compiler.main(Compiler.java:177) [ERROR] java.lang.ExceptionInInitializerError
[ERROR] at org.jboss.errai.marshalling.rebind.MarshallersGenerator.gener ate(MarshallersGenerator.java:220)
[ERROR] at com.google.gwt.core.ext.GeneratorExtWrapper.generate(Generato rExtWrapper.java:48)
[ERROR] at com.google.gwt.core.ext.GeneratorExtWrapper.generateIncrement ally(GeneratorExtWrapper.java:60)
[ERROR] at com.google.gwt.dev.javac.StandardGeneratorContext.runGenerato rIncrementally(StandardGeneratorContext.java:647)
[ERROR] at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateW ith.java:41)
[ERROR] at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind (StandardRebindOracle.java:78)
[ERROR] at com.google.gwt.dev.shell.StandardRebindOracle.rebind(Standard RebindOracle.java:268)
[ERROR] at com.google.gwt.dev.shell.StandardRebindOracle.rebind(Standard RebindOracle.java:257)
[ERROR] at com.google.gwt.dev.DistillerRebindPermutationOracle.getAllPos sibleRebindAnswers(DistillerRebindPermutationOracle.java:91)
[ERROR] at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.doFindAddition alTypesUsingRebinds(WebModeCompilerFrontEnd.java:96)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. process(AbstractCompiler.java:254)
[ERROR] at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.j ava:444)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. compile(AbstractCompiler.java:173)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. compile(AbstractCompiler.java:288)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. access$400(AbstractCompiler.java:139)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler.compile(AbstractCompi ler.java:588)
[ERROR] at com.google.gwt.dev.jdt.BasicWebModeCompiler.getCompilationUni tDeclarations(BasicWebModeCompiler.java:97)
[ERROR] at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.getCompilation UnitDeclarations(WebModeCompilerFrontEnd.java:52)
[ERROR] at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(Ja vaToJavaScriptCompiler.java:569)
[ERROR] at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScri ptCompiler.java:33)
[ERROR] at com.google.gwt.dev.Precompile.precompile(Precompile.java:284) [ERROR] at com.google.gwt.dev.Precompile.precompile(Precompile.java:233) [ERROR] at com.google.gwt.dev.Precompile.precompile(Precompile.java:145) [ERROR] at com.google.gwt.dev.Compiler.run(Compiler.java:232) [ERROR] at com.google.gwt.dev.Compiler.run(Compiler.java:198) [ERROR] at com.google.gwt.dev.Compiler$1.run(Compiler.java:170) [ERROR] at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner. java:88)
[ERROR] at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger (CompileTaskRunner.java:82)
[ERROR] at com.google.gwt.dev.Compiler.main(Compiler.java:177) [ERROR] Caused by: java.lang.RuntimeException: java.lang.RuntimeException: canno
t marshal an abstract class or interface: org.drools.ide.common.client.modeldriv
en.brl.FieldConstraint
[ERROR] [INFO] [ERROR] Error generating marshallers at org.jboss.errai.marshalling.rebind.DefinitionsFactorySingleton.<clini t>(DefinitionsFactorySingleton.java:32)
[INFO] java.lang.ExceptionInInitializerError
[ERROR] ... 29 more [INFO] at org.jboss.errai.marshalling.rebind.MarshallersGenerator.generate(Mars
hallersGenerator.java:220)
[ERROR] Caused by: java.lang.RuntimeException: cannot marshal an abstract class
or interface: org.drools.ide.common.client.modeldriven.brl.FieldConstraint
[INFO] at com.google.gwt.core.ext.GeneratorExtWrapper.generate(GeneratorExtWrap
per.java:48)
[ERROR] at org.jboss.errai.marshalling.rebind.api.impl.defaultjava.Defau ltJavaDefinitionMapper.map(DefaultJavaDefinitionMapper.java:52)
[INFO] at com.google.gwt.core.ext.GeneratorExtWrapper.generateIncrementally(Gen
eratorExtWrapper.java:60)
[ERROR] at org.jboss.errai.marshalling.rebind.DefinitionsFactoryImpl.loa dCustomMappings(DefinitionsFactoryImpl.java:285)
[INFO] at com.google.gwt.dev.javac.StandardGeneratorContext.runGeneratorIncreme
ntally(StandardGeneratorContext.java:647)
[ERROR] at org.jboss.errai.marshalling.rebind.DefinitionsFactoryImpl.<in it>(DefinitionsFactoryImpl.java:76)
If I remove org.drools.ide.common.client.modeldriven.brl.FieldConstraint from ErraiApp.properties, I got a NPE:
[INFO] Rebinding org.jboss.errai.marshalling.client.api.MarshallerFacto ry
[INFO] Invoking generator org.jboss.errai.marshalling.rebind.Marshal lersGenerator
[INFO] Generating Marshallers Bootstrapper... [INFO] not found: org.drools.ide.common.client.modeldriven.brl.FieldConstraint
[ERROR] java.lang.NullPointerException
[ERROR] at org.jboss.errai.marshalling.rebind.api.impl.defaultjava.Defau ltJavaMappingStrategy.calcBufferSize(DefaultJavaMappingStrategy.java:361)
[ERROR] at org.jboss.errai.marshalling.rebind.api.impl.defaultjava.Defau ltJavaMappingStrategy.calcBufferSize(DefaultJavaMappingStrategy.java:372)
[ERROR] at org.jboss.errai.marshalling.rebind.api.impl.defaultjava.Defau ltJavaMappingStrategy.marshallToJSON(DefaultJavaMappingStrategy.java:403)
[ERROR] at org.jboss.errai.marshalling.rebind.api.impl.defaultjava.Defau ltJavaMappingStrategy$1.getMarshaller(DefaultJavaMappingStrategy.java:318)
[ERROR] at org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory .marshal(MarshallerGeneratorFactory.java:294)
[ERROR] at org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory .generateMarshallers(MarshallerGeneratorFactory.java:254)
[ERROR] at org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory ._generate(MarshallerGeneratorFactory.java:225)
[ERROR] at org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory .generate(MarshallerGeneratorFactory.java:109)
[ERROR] at org.jboss.errai.marshalling.rebind.MarshallersGenerator._gene rate(MarshallersGenerator.java:260)
[ERROR] at org.jboss.errai.marshalling.rebind.MarshallersGenerator.gener ateMarshallerBootstrapper(MarshallersGenerator.java:238)
[ERROR] at org.jboss.errai.marshalling.rebind.MarshallersGenerator.gener ate(MarshallersGenerator.java:223)
[ERROR] at com.google.gwt.core.ext.GeneratorExtWrapper.generate(Generato rExtWrapper.java:48)
[ERROR] at com.google.gwt.core.ext.GeneratorExtWrapper.generateIncrement ally(GeneratorExtWrapper.java:60)
[ERROR] at com.google.gwt.dev.javac.StandardGeneratorContext.runGenerato rIncrementally(StandardGeneratorContext.java:647)
[ERROR] at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateW ith.java:41)
[ERROR] at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind (StandardRebindOracle.java:78)
[ERROR] at com.google.gwt.dev.shell.StandardRebindOracle.rebind(Standard RebindOracle.java:268)
[ERROR] at com.google.gwt.dev.shell.StandardRebindOracle.rebind(Standard RebindOracle.java:257)
[ERROR] at com.google.gwt.dev.DistillerRebindPermutationOracle.getAllPos sibleRebindAnswers(DistillerRebindPermutationOracle.java:91)
[ERROR] at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.doFindAddition alTypesUsingRebinds(WebModeCompilerFrontEnd.java:96)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. process(AbstractCompiler.java:254)
[ERROR] at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.j ava:444)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. compile(AbstractCompiler.java:173)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. compile(AbstractCompiler.java:288)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. access$400(AbstractCompiler.java:139)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler.compile(AbstractCompi ler.java:588)
[INFO] [ERROR] Error generating marshallers [ERROR] at com.google.gwt.dev.jdt.BasicWebModeCompiler.getCompilationUni tDeclarations(BasicWebModeCompiler.java:97)
[INFO] java.lang.NullPointerException
[INFO] at org.jboss.errai.marshalling.rebind.api.impl.defaultjava.DefaultJavaMa
ppingStrategy.calcBufferSize(DefaultJavaMappingStrategy.java:361)
[ERROR] at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.getCompilation UnitDeclarations(WebModeCompilerFrontEnd.java:52)
[INFO] at org.jboss.errai.marshalling.rebind.api.impl.defaultjava.DefaultJavaMa
ppingStrategy.calcBufferSize(DefaultJavaMappingStrategy.java:372)
[ERROR] at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(Ja vaToJavaScriptCompiler.java:569)
[INFO] at org.jboss.errai.marshalling.rebind.api.impl.defaultjava.DefaultJavaMa
ppingStrategy.marshallToJSON(DefaultJavaMappingStrategy.java:403)
[ERROR] at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScri ptCompiler.java:33)
[INFO] at org.jboss.errai.marshalling.rebind.api.impl.defaultjava.DefaultJavaMa
ppingStrategy$1.getMarshaller(DefaultJavaMappingStrategy.java:318)
[ERROR] at com.google.gwt.dev.Precompile.precompile(Precompile.java:284) [INFO] at org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory.marshal
(MarshallerGeneratorFactory.java:294)
[ERROR] at com.google.gwt.dev.Precompile.precompile(Precompile.java:233) [INFO] at org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory.generat
eMarshallers(MarshallerGeneratorFactory.java:254)
[ERROR] at com.google.gwt.dev.Precompile.precompile(Precompile.java:145) [INFO] at org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory._genera
te(MarshallerGeneratorFactory.java:225)
[ERROR] at com.google.gwt.dev.Compiler.run(Compiler.java:232) [INFO] at org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory.generat
e(MarshallerGeneratorFactory.java:109)
[ERROR] at com.google.gwt.dev.Compiler.run(Compiler.java:198) [INFO] at org.jboss.errai.marshalling.rebind.MarshallersGenerator._generate(Mar
shallersGenerator.java:260)
[ERROR] at com.google.gwt.dev.Compiler$1.run(Compiler.java:170) [INFO] at org.jboss.errai.marshalling.rebind.MarshallersGenerator.generateMarsh
allerBootstrapper(MarshallersGenerator.java:238)
[ERROR] at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner. java:88)
[INFO] at org.jboss.errai.marshalling.rebind.MarshallersGenerator.generate(Mars
hallersGenerator.java:223)
[ERROR] at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger (CompileTaskRunner.java:82)
[INFO] at com.google.gwt.core.ext.GeneratorExtWrapper.generate(GeneratorExtWrap
per.java:48)
[ERROR] at com.google.gwt.dev.Compiler.main(Compiler.java:177) [INFO] at com.google.gwt.core.ext.GeneratorExtWrapper.generateIncrementally(Gen
eratorExtWrapper.java:60)
[INFO] at com.google.gwt.dev.javac.StandardGeneratorContext.runGeneratorIncreme
ntally(StandardGeneratorContext.java:647)
[INFO] at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java
:41)
[INFO] at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind(Standar
dRebindOracle.java:78)
[INFO] at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOr
acle.java:268)
[INFO] at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOr
acle.java:257)
[INFO] at com.google.gwt.dev.DistillerRebindPermutationOracle.getAllPossibleReb
indAnswers(DistillerRebindPermutationOracle.java:91)
[INFO] at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.doFindAdditionalTypesU
singRebinds(WebModeCompilerFrontEnd.java:96)
[INFO] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.process(
AbstractCompiler.java:254)
[INFO] at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:444)
[INFO] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.compile(
AbstractCompiler.java:173)
[INFO] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.compile(
AbstractCompiler.java:288)
[INFO] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.access$4
00(AbstractCompiler.java:139)
[INFO] at com.google.gwt.dev.jdt.AbstractCompiler.compile(AbstractCompiler.java
:588)
[INFO] at com.google.gwt.dev.jdt.BasicWebModeCompiler.getCompilationUnitDeclara
tions(BasicWebModeCompiler.java:97)
[INFO] at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.getCompilationUnitDecl
arations(WebModeCompilerFrontEnd.java:52)
[INFO] at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJava
ScriptCompiler.java:569)
[INFO] at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompil
er.java:33)
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:284)
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:233)
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:145)
[INFO] at com.google.gwt.dev.Compiler.run(Compiler.java:232)
[INFO] at com.google.gwt.dev.Compiler.run(Compiler.java:198)
[INFO] at com.google.gwt.dev.Compiler$1.run(Compiler.java:170)
[INFO] at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88)
[INFO] at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(Compile
TaskRunner.java:82)
Thanks,
Jervis
-
3. Re: Marshalling with interfaces
jfuerth Jul 16, 2012 1:38 PM (in response to jervisliu)Hi Jervis,
Thanks for the followup. We hadn't tested our fix against arrays of interface types. We've pushed the fix on the 2.0.x branch, and will be merging it up to 2.1 after lunch. You should see new 2.1-SNAPSHOT with the fix within a couple of hours.
By the way, we also found and fixed a separate issue with Array marshalling. Take this example:
@Portable public class ConcreteFooType { ... }
@Portable public class ConcreteFooSubtype extends ConcreteFooType { ... }
@Portable public class BarType { private ConcreteFooType[] fooArray; }
In this case, any instances of ConcreteFooSubtype in BarType.fooArray would have been marshalled and demarshalled as ConcreteFooType. The array marshaller generator was always using the array's declared element type for marshalling and demarshalling array elements. This is covered by the fix we implemented for your array case, so it should no longer be an issue as of 2.0.2 and the latest 2.1-SNAPSHOTs.
Don't know if you have run into this or not, but I thought I should mention it on the forum in case anyone comes across it.
-Jonathan and Christian
-
4. Re: Marshalling with interfaces
jervisliu Jul 18, 2012 1:58 AM (in response to jfuerth)Hi Jonathan, with the lastest snapshot, looks like the interface problem is fixed, not 100% sure yet, as I am getting a different error now: marshalling with Map:
The code where code gen failed:
public void setDataEnumLists(Map<String, String[]> data) {
this.dataEnumLists = data;
}
The error stack trace:
[INFO] Rebinding org.jboss.errai.marshalling.client.api.MarshallerFacto ry
[INFO] Invoking generator org.jboss.errai.marshalling.rebind.Marshal lersGenerator
[INFO] Generating Marshallers Bootstrapper... [ERROR] java.lang.RuntimeException: error generating method call for: setDataEnu
mLists([((java.util.Map)((java.util.Map)[Statement:[StackReset] -> [[LoadVariabl
e<java_util_Map>][[MethodCall<demarshall([[Statement:[[LoadVariable<obj>][[Metho
dCall<get([dataEnumLists])>]null]]], [Statement:[[LoadVariable<a1>]null]]])>]nul
l]]]))])
[ERROR] at org.jboss.errai.codegen.builder.callstack.MethodCall.handleCa ll(MethodCall.java:121)
[ERROR] at org.jboss.errai.codegen.builder.callstack.AbstractCallElement .nextOrReturn(AbstractCallElement.java:46)
[ERROR] at org.jboss.errai.codegen.builder.callstack.LoadVariable.handle Call(LoadVariable.java:122)
[ERROR] at org.jboss.errai.codegen.builder.impl.AbstractStatementBuilder .generate(AbstractStatementBuilder.java:63)
[ERROR] at org.jboss.errai.codegen.BlockStatement.generate(BlockStatemen t.java:79)
[ERROR] at org.jboss.errai.codegen.control.IfBlock.generate(IfBlock.java :65)
[ERROR] at org.jboss.errai.codegen.builder.callstack.ConditionalBlockCal lElement.handleCall(ConditionalBlockCallElement.java:46)
[ERROR] at org.jboss.errai.codegen.builder.impl.AbstractStatementBuilder .generate(AbstractStatementBuilder.java:63)
[ERROR] at org.jboss.errai.codegen.BlockStatement.generate(BlockStatemen t.java:79)
[ERROR] at org.jboss.errai.codegen.control.TryBlock.generate(TryBlock.ja va:59)
[ERROR] at org.jboss.errai.codegen.builder.impl.TryBlockBuilderImpl$1.do Deferred(TryBlockBuilderImpl.java:54)
[ERROR] at org.jboss.errai.codegen.builder.callstack.DeferredCallElement .handleCall(DeferredCallElement.java:39)
[ERROR] at org.jboss.errai.codegen.builder.impl.AbstractStatementBuilder .generate(AbstractStatementBuilder.java:63)
[ERROR] at org.jboss.errai.codegen.BlockStatement.generate(BlockStatemen t.java:79)
[ERROR] at org.jboss.errai.codegen.builder.impl.AnonymousClassStructureB uilderImpl$2$1.doGenerate(AnonymousClassStructureBuilderImpl.java:109)
[ERROR] at org.jboss.errai.codegen.builder.impl.AnonymousClassStructureB uilderImpl.doGenerate(AnonymousClassStructureBuilderImpl.java:180)
[ERROR] at org.jboss.errai.codegen.builder.impl.AnonymousClassStructureB uilderImpl.access$200(AnonymousClassStructureBuilderImpl.java:43)
[ERROR] at org.jboss.errai.codegen.builder.impl.AnonymousClassStructureB uilderImpl$3.generate(AnonymousClassStructureBuilderImpl.java:148)
[ERROR] at org.jboss.errai.codegen.builder.impl.ObjectBuilder$2.doDeferr ed(ObjectBuilder.java:174)
[ERROR] at org.jboss.errai.codegen.builder.callstack.DeferredCallElement .handleCall(DeferredCallElement.java:39)
[ERROR] at org.jboss.errai.codegen.builder.callstack.AbstractCallElement .nextOrReturn(AbstractCallElement.java:46)
[ERROR] at org.jboss.errai.codegen.builder.callstack.ResetCallElement.ha ndleCall(ResetCallElement.java:29)
[ERROR] at org.jboss.errai.codegen.builder.impl.AbstractStatementBuilder .generate(AbstractStatementBuilder.java:63)
[ERROR] at org.jboss.errai.codegen.builder.impl.ObjectBuilder.generate(O bjectBuilder.java:182)
[ERROR] at org.jboss.errai.codegen.util.GenUtil.generate(GenUtil.java:13 0)
[ERROR] at org.jboss.errai.codegen.builder.callstack.AssignVariable.hand leCall(AssignVariable.java:46)
[ERROR] at org.jboss.errai.codegen.builder.callstack.AbstractCallElement .nextOrReturn(AbstractCallElement.java:46)
[ERROR] at org.jboss.errai.codegen.builder.callstack.LoadVariable.handle Call(LoadVariable.java:122)
[ERROR] at org.jboss.errai.codegen.builder.impl.AbstractStatementBuilder .generate(AbstractStatementBuilder.java:63)
[ERROR] at org.jboss.errai.codegen.BlockStatement.generate(BlockStatemen t.java:79)
[ERROR] at org.jboss.errai.codegen.meta.impl.build.BuildMetaConstructor. toJavaString(BuildMetaConstructor.java:268)
[ERROR] at org.jboss.errai.codegen.meta.impl.build.BuildMetaClass.member sToString(BuildMetaClass.java:685)
[ERROR] at org.jboss.errai.codegen.meta.impl.build.BuildMetaClass.toJava String(BuildMetaClass.java:630)
[ERROR] at org.jboss.errai.codegen.meta.impl.build.BuildMetaClass.toJava String(BuildMetaClass.java:541)
[ERROR] at org.jboss.errai.codegen.builder.impl.ClassBuilder.toJavaStrin g(ClassBuilder.java:495)
[ERROR] at org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory ._generate(MarshallerGeneratorFactory.java:237)
[ERROR] at org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory .generate(MarshallerGeneratorFactory.java:109)
[ERROR] at org.jboss.errai.marshalling.rebind.MarshallersGenerator._gene rate(MarshallersGenerator.java:260)
[ERROR] at org.jboss.errai.marshalling.rebind.MarshallersGenerator.gener ateMarshallerBootstrapper(MarshallersGenerator.java:238)
[ERROR] at org.jboss.errai.marshalling.rebind.MarshallersGenerator.gener ate(MarshallersGenerator.java:223)
[ERROR] at com.google.gwt.core.ext.GeneratorExtWrapper.generate(Generato rExtWrapper.java:48)
[ERROR] at com.google.gwt.core.ext.GeneratorExtWrapper.generateIncrement ally(GeneratorExtWrapper.java:60)
[ERROR] at com.google.gwt.dev.javac.StandardGeneratorContext.runGenerato rIncrementally(StandardGeneratorContext.java:647)
[ERROR] at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateW ith.java:41)
[ERROR] at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind (StandardRebindOracle.java:78)
[ERROR] at com.google.gwt.dev.shell.StandardRebindOracle.rebind(Standard RebindOracle.java:268)
[ERROR] at com.google.gwt.dev.shell.StandardRebindOracle.rebind(Standard RebindOracle.java:257)
[ERROR] at com.google.gwt.dev.DistillerRebindPermutationOracle.getAllPos sibleRebindAnswers(DistillerRebindPermutationOracle.java:91)
[ERROR] at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.doFindAddition alTypesUsingRebinds(WebModeCompilerFrontEnd.java:96)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. process(AbstractCompiler.java:254)
[ERROR] at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.j ava:444)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. compile(AbstractCompiler.java:173)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. compile(AbstractCompiler.java:288)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl. access$400(AbstractCompiler.java:139)
[ERROR] at com.google.gwt.dev.jdt.AbstractCompiler.compile(AbstractCompi ler.java:588)
[ERROR] at com.google.gwt.dev.jdt.BasicWebModeCompiler.getCompilationUni tDeclarations(BasicWebModeCompiler.java:97)
[ERROR] at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.getCompilation UnitDeclarations(WebModeCompilerFrontEnd.java:52)
[ERROR] at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(Ja vaToJavaScriptCompiler.java:569)
[ERROR] at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScri ptCompiler.java:33)
[ERROR] at com.google.gwt.dev.Precompile.precompile(Precompile.java:284) [ERROR] at com.google.gwt.dev.Precompile.precompile(Precompile.java:233) [ERROR] at com.google.gwt.dev.Precompile.precompile(Precompile.java:145) [ERROR] at com.google.gwt.dev.Compiler.run(Compiler.java:232) [ERROR] at com.google.gwt.dev.Compiler.run(Compiler.java:198) [ERROR] at com.google.gwt.dev.Compiler$1.run(Compiler.java:170) [ERROR] at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner. java:88)
[ERROR] at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger (CompileTaskRunner.java:82)
[ERROR] at com.google.gwt.dev.Compiler.main(Compiler.java:177) [ERROR] Caused by: java.lang.RuntimeException: unknown class reference type: org
.jboss.errai.codegen.meta.impl.java.JavaReflectionGenericArrayType@4683400b
[ERROR] [INFO] [ERROR] Error generating marshallers at org.jboss.errai.codegen.builder.callstack.LoadClassReference._getClas sReference(LoadClassReference.java:116)
[INFO] java.lang.RuntimeException: error generating method call for: setDataEnum
Lists([((java.util.Map)((java.util.Map)[Statement:[StackReset] -> [[LoadVariable
<java_util_Map>][[MethodCall<demarshall([[Statement:[[LoadVariable<obj>][[Method
Call<get([dataEnumLists])>]null]]], [Statement:[[LoadVariable<a1>]null]]])>]null
]]]))])
[ERROR] at org.jboss.errai.codegen.builder.callstack.LoadClassReference. getClassReference(LoadClassReference.java:92)
[INFO] at org.jboss.errai.codegen.builder.callstack.MethodCall.handleCall(Metho
dCall.java:121)
[ERROR] at org.jboss.errai.codegen.builder.callstack.LoadClassReference. getClassReference(LoadClassReference.java:74)
[INFO] at org.jboss.errai.codegen.builder.callstack.AbstractCallElement.nextOrR
eturn(AbstractCallElement.java:46)
[ERROR] at org.jboss.errai.codegen.builder.callstack.LoadClassReference. getClassReferencesForParameterizedTypes(LoadClassReference.java:172)
[INFO] at org.jboss.errai.codegen.builder.callstack.LoadVariable.handleCall(Loa
dVariable.java:122)
[ERROR] at org.jboss.errai.codegen.builder.callstack.LoadClassReference. _getClassReference(LoadClassReference.java:135)
[INFO] at org.jboss.errai.codegen.builder.impl.AbstractStatementBuilder.generat
e(AbstractStatementBuilder.java:63)
[ERROR] at org.jboss.errai.codegen.builder.callstack.LoadClassReference. getClassReference(LoadClassReference.java:92)
[INFO] at org.jboss.errai.codegen.BlockStatement.generate(BlockStatement.java:7
9)
[ERROR] at org.jboss.errai.codegen.builder.callstack.LoadClassReference. getClassReference(LoadClassReference.java:74)
[INFO] at org.jboss.errai.codegen.control.IfBlock.generate(IfBlock.java:65)
[ERROR] at org.jboss.errai.codegen.Cast.generate(Cast.java:69) [INFO] at org.jboss.errai.codegen.builder.callstack.ConditionalBlockCallElement
.handleCall(ConditionalBlockCallElement.java:46)
[ERROR] at org.jboss.errai.codegen.Cast.generate(Cast.java:52) [INFO] at org.jboss.errai.codegen.builder.impl.AbstractStatementBuilder.generat
e(AbstractStatementBuilder.java:63)
[ERROR] at org.jboss.errai.codegen.util.GenUtil.generate(GenUtil.java:13 0)
[INFO] at org.jboss.errai.codegen.BlockStatement.generate(BlockStatement.java:7
9)
[ERROR] at org.jboss.errai.codegen.util.GenUtil.generateCallParameters(G enUtil.java:76)
[INFO] at org.jboss.errai.codegen.control.TryBlock.generate(TryBlock.java:59)
[INFO] at org.jboss.errai.codegen.builder.impl.TryBlockBuilderImpl$1.doDeferred
(TryBlockBuilderImpl.java:54)
[ERROR] ll(MethodCall.java:60)
[INFO] at org.jboss.errai.codegen.builder.callstack.DeferredCallElement.handleC
all(DeferredCallElement.java:39)
[ERROR] ... 67 more [INFO] at org.jboss.errai.codegen.builder.impl.AbstractStatementBuilder.generat
e(AbstractStatementBuilder.java:63)
[INFO] at org.jboss.errai.codegen.BlockStatement.generate(BlockStatement.java:7
9)
[INFO] at org.jboss.errai.codegen.builder.impl.AnonymousClassStructureBuilderIm
pl$2$1.doGenerate(AnonymousClassStructureBuilderImpl.java:109)
[INFO] at org.jboss.errai.codegen.builder.impl.AnonymousClassStructureBuilderIm
pl.doGenerate(AnonymousClassStructureBuilderImpl.java:180)
[INFO] at org.jboss.errai.codegen.builder.impl.AnonymousClassStructureBuilderIm
pl.access$200(AnonymousClassStructureBuilderImpl.java:43)
[INFO] at org.jboss.errai.codegen.builder.impl.AnonymousClassStructureBuilderIm
pl$3.generate(AnonymousClassStructureBuilderImpl.java:148)
[INFO] at org.jboss.errai.codegen.builder.impl.ObjectBuilder$2.doDeferred(Objec
tBuilder.java:174)
[INFO] at org.jboss.errai.codegen.builder.callstack.DeferredCallElement.handleC
all(DeferredCallElement.java:39)
[INFO] at org.jboss.errai.codegen.builder.callstack.AbstractCallElement.nextOrR
eturn(AbstractCallElement.java:46)
[INFO] at org.jboss.errai.codegen.builder.callstack.ResetCallElement.handleCall
(ResetCallElement.java:29)
[INFO] at org.jboss.errai.codegen.builder.impl.AbstractStatementBuilder.generat
e(AbstractStatementBuilder.java:63)
[INFO] at org.jboss.errai.codegen.builder.impl.ObjectBuilder.generate(ObjectBui
lder.java:182)
[INFO] at org.jboss.errai.codegen.util.GenUtil.generate(GenUtil.java:130)
[INFO] at org.jboss.errai.codegen.builder.callstack.AssignVariable.handleCall(A
ssignVariable.java:46)
[INFO] at org.jboss.errai.codegen.builder.callstack.AbstractCallElement.nextOrR
eturn(AbstractCallElement.java:46)
[INFO] at org.jboss.errai.codegen.builder.callstack.LoadVariable.handleCall(Loa
dVariable.java:122)
[INFO] at org.jboss.errai.codegen.builder.impl.AbstractStatementBuilder.generat
e(AbstractStatementBuilder.java:63)
[INFO] at org.jboss.errai.codegen.BlockStatement.generate(BlockStatement.java:7
9)
[INFO] at org.jboss.errai.codegen.meta.impl.build.BuildMetaConstructor.toJavaSt
ring(BuildMetaConstructor.java:268)
[INFO] at org.jboss.errai.codegen.meta.impl.build.BuildMetaClass.membersToStrin
g(BuildMetaClass.java:685)
[INFO] at org.jboss.errai.codegen.meta.impl.build.BuildMetaClass.toJavaString(B
uildMetaClass.java:630)
[INFO] at org.jboss.errai.codegen.meta.impl.build.BuildMetaClass.toJavaString(B
uildMetaClass.java:541)
[INFO] at org.jboss.errai.codegen.builder.impl.ClassBuilder.toJavaString(ClassB
uilder.java:495)
[INFO] at org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory._genera
te(MarshallerGeneratorFactory.java:237)
[INFO] at org.jboss.errai.marshalling.rebind.MarshallerGeneratorFactory.generat
e(MarshallerGeneratorFactory.java:109)
[INFO] at org.jboss.errai.marshalling.rebind.MarshallersGenerator._generate(Mar
shallersGenerator.java:260)
[INFO] at org.jboss.errai.marshalling.rebind.MarshallersGenerator.generateMarsh
allerBootstrapper(MarshallersGenerator.java:238)
[INFO] at org.jboss.errai.marshalling.rebind.MarshallersGenerator.generate(Mars
hallersGenerator.java:223)
[INFO] at com.google.gwt.core.ext.GeneratorExtWrapper.generate(GeneratorExtWrap
per.java:48)
[INFO] at com.google.gwt.core.ext.GeneratorExtWrapper.generateIncrementally(Gen
eratorExtWrapper.java:60)
[INFO] at com.google.gwt.dev.javac.StandardGeneratorContext.runGeneratorIncreme
ntally(StandardGeneratorContext.java:647)
[INFO] at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java
:41)
[INFO] at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind(Standar
dRebindOracle.java:78)
[INFO] at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOr
acle.java:268)
[INFO] at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOr
acle.java:257)
[INFO] at com.google.gwt.dev.DistillerRebindPermutationOracle.getAllPossibleReb
indAnswers(DistillerRebindPermutationOracle.java:91)
[INFO] at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.doFindAdditionalTypesU
singRebinds(WebModeCompilerFrontEnd.java:96)
[INFO] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.process(
AbstractCompiler.java:254)
[INFO] at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:444)
[INFO] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.compile(
AbstractCompiler.java:173)
[INFO] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.compile(
AbstractCompiler.java:288)
[INFO] at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.access$4
00(AbstractCompiler.java:139)
[INFO] at com.google.gwt.dev.jdt.AbstractCompiler.compile(AbstractCompiler.java
:588)
[INFO] at com.google.gwt.dev.jdt.BasicWebModeCompiler.getCompilationUnitDeclara
tions(BasicWebModeCompiler.java:97)
[INFO] at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.getCompilationUnitDecl
arations(WebModeCompilerFrontEnd.java:52)
[INFO] at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJava
ScriptCompiler.java:569)
[INFO] at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompil
er.java:33)
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:284)
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:233)
[INFO] at com.google.gwt.dev.Precompile.precompile(Precompile.java:145)
[INFO] at com.google.gwt.dev.Compiler.run(Compiler.java:232)
[INFO] at com.google.gwt.dev.Compiler.run(Compiler.java:198)
[INFO] at com.google.gwt.dev.Compiler$1.run(Compiler.java:170)
[INFO] at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88)
[INFO] at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(Compile
TaskRunner.java:82)
[INFO] at com.google.gwt.dev.Compiler.main(Compiler.java:177)
[INFO] Caused by: java.lang.RuntimeException: unknown class reference type: org.
jboss.errai.codegen.meta.impl.java.JavaReflectionGenericArrayType@4683400b
[INFO] at org.jboss.errai.codegen.builder.callstack.LoadClassReference._getClas
sReference(LoadClassReference.java:116)
[INFO] at org.jboss.errai.codegen.builder.callstack.LoadClassReference.getClass
Reference(LoadClassReference.java:92)
[INFO] at org.jboss.errai.codegen.builder.callstack.LoadClassReference.getClass
Reference(LoadClassReference.java:74)
[INFO] at org.jboss.errai.codegen.builder.callstack.LoadClassReference.getClass
ReferencesForParameterizedTypes(LoadClassReference.java:172)
[INFO] at org.jboss.errai.codegen.builder.callstack.LoadClassReference._getClas
sReference(LoadClassReference.java:135)
[INFO] at org.jboss.errai.codegen.builder.callstack.LoadClassReference.getClass
Reference(LoadClassReference.java:92)
[INFO] at org.jboss.errai.codegen.builder.callstack.LoadClassReference.getClass
Reference(LoadClassReference.java:74)
[INFO] at org.jboss.errai.codegen.Cast.generate(Cast.java:69)
[INFO] at org.jboss.errai.codegen.Cast.generate(Cast.java:52)
[INFO] at org.jboss.errai.codegen.util.GenUtil.generate(GenUtil.java:130)
[INFO] at org.jboss.errai.codegen.util.GenUtil.generateCallParameters(GenUtil.j
ava:76)
[INFO] at org.jboss.errai.codegen.builder.callstack.MethodCall.handleCall(Metho
dCall.java:60)
[INFO] ... 67 more
I guess marshalling with Map is not supported yet?
Thanks,
Jervis
-
5. Re: Marshalling with interfaces
csa Jul 18, 2012 4:45 PM (in response to jervisliu)Hi Jervis,
Marshalling maps is supported but you ran into a new problem: the value type of the map being an array. This is fixed now too and new snapshots will go out in the next hour or so.
BTW, is there a reason you prefer using arrays over lists?
Cheers,
Christian