Uploaded image for project: 'ProtoStream'
  1. ProtoStream
  2. IPROTO-115

Processor unable to use Pojos that have WrappedMessage fields

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 4.3.0.Alpha12
    • 4.3.0.Alpha11
    • None
    • DataGrid Sprint #34, DataGrid Sprint #35, DataGrid Sprint #36, DataGrid Sprint #37, DataGrid Sprint #38, DataGrid Sprint #39

      class ComplexKey {
      
         @ProtoField(number = 1)
         String id;
      
         @ProtoField(number = 2, defaultValue = "0")
         Float ratio;
      
         @ProtoField(number = 3)
         WrappedMessage example;
      
      
         ComplexKey(String id, Float ratio) {
            this.id = id;
            this.ratio = ratio;
         }
      
         @ProtoFactory
         public ComplexKey(String id, Float ratio, WrappedMessage example) {
            this.id = id;
            this.ratio = ratio;
            this.example = example;
         }
      
         @Override
         public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            ComplexKey that = (ComplexKey) o;
            return Objects.equals(id, that.id) &&
                  Objects.equals(ratio, that.ratio);
         }
      
         @Override
         public int hashCode() {
            return Objects.hash(id, ratio);
         }
      }
      

      Results in the following compile-time error:

      [ERROR] /home/remerson/workspace/RedHat/infinispan/infinispan-alt/client/hotrod-client/src/test/java/org/infinispan/client/hotrod/transcoding/DataFormatTest.java:[325,4] org.infinispan.protostream.annotations.ProtoSchemaBuilderException: The class org.infinispan.protostream.WrappedMessage must be instantiable using an accessible no-argument constructor.
      [ERROR]   	at org.infinispan.protostream.annotations.impl.ProtoMessageTypeMetadata.checkInstantiability(ProtoMessageTypeMetadata.java:279)
      [ERROR]   	at org.infinispan.protostream.annotations.impl.ProtoMessageTypeMetadata.<init>(ProtoMessageTypeMetadata.java:70)
      [ERROR]   	at org.infinispan.protostream.annotations.impl.BaseProtoSchemaGenerator.makeProtoTypeMetadata(BaseProtoSchemaGenerator.java:250)
      [ERROR]   	at org.infinispan.protostream.annotations.impl.BaseProtoSchemaGenerator.scanAnnotations(BaseProtoSchemaGenerator.java:236)
      [ERROR]   	at org.infinispan.protostream.annotations.impl.ProtoMessageTypeMetadata.getProtobufType(ProtoMessageTypeMetadata.java:816)
      [ERROR]   	at org.infinispan.protostream.annotations.impl.ProtoMessageTypeMetadata.discoverFields(ProtoMessageTypeMetadata.java:346)
      [ERROR]   	at org.infinispan.protostream.annotations.impl.ProtoMessageTypeMetadata.scanMemberAnnotations(ProtoMessageTypeMetadata.java:178)
      [ERROR]   	at org.infinispan.protostream.annotations.impl.BaseProtoSchemaGenerator.generateAndRegister(BaseProtoSchemaGenerator.java:116)
      [ERROR]   	at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.processClass(AutoProtoSchemaBuilderAnnotationProcessor.java:304)
      [ERROR]   	at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.processElement(AutoProtoSchemaBuilderAnnotationProcessor.java:235)
      [ERROR]   	at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.process(AutoProtoSchemaBuilderAnnotationProcessor.java:181)
      [ERROR]   	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:980)
      [ERROR]   	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:896)
      [ERROR]   	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1222)
      [ERROR]   	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1334)
      [ERROR]   	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1258)
      [ERROR]   	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:936)
      [ERROR]   	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
      [ERROR]   	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:147)
      [ERROR]   	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
      [ERROR]   	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
      [ERROR]   	at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:126)
      [ERROR]   	at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:174)
      [ERROR]   	at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1129)
      [ERROR]   	at org.apache.maven.plugin.compiler.TestCompilerMojo.execute(TestCompilerMojo.java:181)
      [ERROR]   	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
      [ERROR]   	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
      [ERROR]   	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
      [ERROR]   	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
      [ERROR]   	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
      [ERROR]   	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
      [ERROR]   	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
      [ERROR]   	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
      [ERROR]   	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
      [ERROR]   	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
      [ERROR]   	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
      [ERROR]   	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)
      [ERROR]   	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
      [ERROR]   	at org.apache.maven.cli.MavenCli.main(MavenCli.java:192)
      [ERROR]   	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      [ERROR]   	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      [ERROR]   	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      [ERROR]   	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
      [ERROR]   	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
      [ERROR]   	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
      [ERROR]   	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
      [ERROR]   	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
      [ERROR] 
      

              anistor Adrian Nistor (Inactive)
              remerson@redhat.com Ryan Emerson
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: