Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-11331

AwsOptions from sdk.io.aws2 is incompatible with DataflowPipelineOptions

Details

    • Bug
    • Status: Resolved
    • P2
    • Resolution: Fixed
    • 2.25.0
    • 2.27.0
    • io-java-aws
    • None

    Description

      When using connectors from the aws2 module, build will fail with

      java.lang.IllegalArgumentException: Expected getter for property [region] to be marked with @Default on all [org.apache.beam.runners.dataflow.options.DataflowPipelineOptions, org.apache.beam.sdk.io.aws2.options.AwsOptions], found only on [org.apache.beam.runners.dataflow.options.DataflowPipelineOptions]
      

      Example:

      package org.example;
      
      import org.apache.beam.sdk.Pipeline;
      import org.apache.beam.sdk.io.aws2.sqs.SqsIO;
      
      public class SqsConsume {
      
        static void runSqsConsume() {
          Pipeline p = Pipeline.create();
          p.apply("ReadLines", SqsIO.read().withQueueUrl("sqs_url"));
          p.run().waitUntilFinish();
        }
      
        public static void main(String[] args) {
          runSqsConsume();
        }
      }
      

      Exception:

      Exception in thread "main" java.lang.ExceptionInInitializerError
      	at org.apache.beam.sdk.Pipeline.create(Pipeline.java:141)
      	at org.example.SqsConsume.runSqsConsume(SqsConsume.java:37)
      	at org.example.SqsConsume.main(SqsConsume.java:49)
      Caused by: java.lang.IllegalArgumentException: Expected getter for property [region] to be marked with @Default on all [org.apache.beam.runners.dataflow.options.DataflowPipelineOptions, org.apache.beam.sdk.io.aws2.options.AwsOptions], found only on [org.apache.beam.runners.dataflow.options.DataflowPipelineOptions]
      	at org.apache.beam.sdk.options.PipelineOptionsFactory.throwForGettersWithInconsistentAnnotation(PipelineOptionsFactory.java:1340)
      	at org.apache.beam.sdk.options.PipelineOptionsFactory.validateGettersHaveConsistentAnnotation(PipelineOptionsFactory.java:1142)
      	at org.apache.beam.sdk.options.PipelineOptionsFactory.validateMethodAnnotations(PipelineOptionsFactory.java:1044)
      	at org.apache.beam.sdk.options.PipelineOptionsFactory.validateClass(PipelineOptionsFactory.java:973)
      	at org.apache.beam.sdk.options.PipelineOptionsFactory.access$2200(PipelineOptionsFactory.java:115)
      	at org.apache.beam.sdk.options.PipelineOptionsFactory$Cache.validateWellFormed(PipelineOptionsFactory.java:1901)
      	at org.apache.beam.sdk.options.PipelineOptionsFactory$Cache.validateWellFormed(PipelineOptionsFactory.java:1842)
      	at org.apache.beam.sdk.options.PipelineOptionsFactory$Cache.register(PipelineOptionsFactory.java:1837)
      	at org.apache.beam.sdk.options.PipelineOptionsFactory$Cache.initializeRegistry(PipelineOptionsFactory.java:1825)
      	at org.apache.beam.sdk.options.PipelineOptionsFactory$Cache.<init>(PipelineOptionsFactory.java:1817)
      	at org.apache.beam.sdk.options.PipelineOptionsFactory$Cache.<init>(PipelineOptionsFactory.java:1786)
      	at org.apache.beam.sdk.options.PipelineOptionsFactory.resetCache(PipelineOptionsFactory.java:542)
      	at org.apache.beam.sdk.options.PipelineOptionsFactory.<clinit>(PipelineOptionsFactory.java:508)
      	... 3 more
      

      Attachments

        Issue Links

          Activity

            People

              dennisyung Dennis Yung
              dennisyung Dennis Yung
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h
                  1h