Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.6 RC: Is JsonPersistable supported on enums? #34

Open
PokingUrsa opened this issue Sep 4, 2019 · 0 comments
Open

0.6 RC: Is JsonPersistable supported on enums? #34

PokingUrsa opened this issue Sep 4, 2019 · 0 comments

Comments

@PokingUrsa
Copy link

On 0.6.0-dev-674/0.2.0-dev-52, I could pass an enum to a method remotely via RESTClient

In 0.6 RC, even with @JsonPersistable added to the enum, I am getting build-time errors (see below).

Should passing enums work? Or do I need to wrapper them in another class?

`
[ERROR] Error calling proxy method org.teavm.flavour.json.JSON.getClassSerializer(Lorg/teavm/metaprogramming/ReflectClass;)V: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.teavm.metaprogramming.impl.UsageGenerator.emitPermutation(UsageGenerator.java:159)
at org.teavm.metaprogramming.impl.UsageGenerator.lambda$installProxyEmitter$0(UsageGenerator.java:84)
at org.teavm.dependency.DependencyAnalyzer.schedulePropagation(DependencyAnalyzer.java:323)
at org.teavm.dependency.DependencyNode.scheduleSingleType(DependencyNode.java:96)
at org.teavm.dependency.DependencyNode.propagate(DependencyNode.java:68)
at org.teavm.dependency.DependencyGraphBuilder$1.lambda$invokeGetClass$1(DependencyGraphBuilder.java:394)
at org.teavm.dependency.DependencyAnalyzer.schedulePropagation(DependencyAnalyzer.java:323)
at org.teavm.dependency.DependencyAnalyzer.schedulePropagation(DependencyAnalyzer.java:380)
at org.teavm.dependency.DependencyNode.scheduleMultipleTypes(DependencyNode.java:215)
at org.teavm.dependency.Transition.mergeDomains(Transition.java:69)
at org.teavm.dependency.Transition.propagate(Transition.java:49)
at org.teavm.dependency.Transition.consume(Transition.java:39)
at org.teavm.dependency.DependencyAnalyzer.schedulePropagation(DependencyAnalyzer.java:338)
at org.teavm.dependency.DependencyAnalyzer.schedulePropagation(DependencyAnalyzer.java:354)
at org.teavm.dependency.DependencyNode.scheduleMultipleTypes(DependencyNode.java:189)
at org.teavm.dependency.Transition.mergeDomains(Transition.java:69)
at org.teavm.dependency.Transition.propagate(Transition.java:49)
at org.teavm.dependency.Transition.propagate(Transition.java:49)
at org.teavm.dependency.Transition.consume(Transition.java:39)
at org.teavm.dependency.DependencyAnalyzer.schedulePropagation(DependencyAnalyzer.java:338)
at org.teavm.dependency.DependencyNode.scheduleSingleType(DependencyNode.java:90)
at org.teavm.dependency.DependencyNode.propagate(DependencyNode.java:68)
at org.teavm.dependency.Transition.propagate(Transition.java:51)
at org.teavm.dependency.Transition.consume(Transition.java:39)
at org.teavm.dependency.DependencyAnalyzer.processNodeToNodeTransitionQueue(DependencyAnalyzer.java:683)
at org.teavm.dependency.DependencyAnalyzer.processQueue(DependencyAnalyzer.java:655)
at org.teavm.dependency.DependencyAnalyzer.processDependencies(DependencyAnalyzer.java:697)
at org.teavm.vm.TeaVM.build(TeaVM.java:376)
at org.teavm.tooling.TeaVMTool.generate(TeaVMTool.java:413)
at org.teavm.tooling.builder.InProcessBuildStrategy.build(InProcessBuildStrategy.java:247)
at org.teavm.maven.TeaVMCompileMojo.executeWithBuilder(TeaVMCompileMojo.java:289)
at org.teavm.maven.TeaVMCompileMojo.execute(TeaVMCompileMojo.java:238)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:200)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:196)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at org.teavm.flavour.json.emit.ClassInformationProvider.createClassInformation(ClassInformationProvider.java:85)
at org.teavm.flavour.json.emit.ClassInformationProvider.get(ClassInformationProvider.java:57)
at org.teavm.flavour.json.emit.JsonSerializerEmitter.emitClassSerializer(JsonSerializerEmitter.java:171)
at org.teavm.flavour.json.emit.JsonSerializerEmitter.getClassSerializer(JsonSerializerEmitter.java:114)
at org.teavm.flavour.json.emit.JsonSerializerEmitter.returnClassSerializer(JsonSerializerEmitter.java:103)
at org.teavm.flavour.json.JSON.getClassSerializer(JSON.java:64)
... 48 more

at org.teavm.flavour.json.JSON.getClassSerializer
at org.teavm.flavour.json.JSON.getObjectSerializer(JSON.java:58)
at org.teavm.flavour.json.JSON.serialize(JSON.java:49)
at org.teavm.flavour.json.JSON.serialize(JSON.java:42)
at com.xxx.yyy.ZzzFacade$proxy$2_0_0.xxxYyy(FactoryEmitter.java:225)
at com.xxx.yyy.ZzzView$1.run(xxx.yyy.ZzzView.java:85)
at java.lang.Thread.runThread(TThread.java:78)
at java.lang.Thread$start$lambda$_4_0.run(TThread.java:70)
at org.teavm.platform.Platform.launchThread(Platform.java:186)

`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant