diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/resourcehints/ResourceHints.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/resourcehints/ResourceHints.java index 07697826e1535..aeecc53514da4 100644 --- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/resourcehints/ResourceHints.java +++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/resourcehints/ResourceHints.java @@ -85,10 +85,7 @@ public static ResourceHints create() { public static ResourceHints fromOptions(PipelineOptions options) { ResourceHintsOptions resourceHintsOptions = options.as(ResourceHintsOptions.class); ResourceHints result = create(); - @Nullable List hints = resourceHintsOptions.getResourceHints(); - if (hints == null) { - return result; - } + List hints = resourceHintsOptions.getResourceHints(); Splitter splitter = Splitter.on('=').limit(2); for (String hint : hints) { List parts = splitter.splitToList(hint); diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/resourcehints/ResourceHintsOptions.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/resourcehints/ResourceHintsOptions.java index 2b18feb2755c6..f63ee2c71a26c 100644 --- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/resourcehints/ResourceHintsOptions.java +++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/resourcehints/ResourceHintsOptions.java @@ -19,19 +19,27 @@ import com.google.auto.service.AutoService; import java.util.List; +import org.apache.beam.sdk.options.Default; +import org.apache.beam.sdk.options.DefaultValueFactory; import org.apache.beam.sdk.options.Description; import org.apache.beam.sdk.options.PipelineOptions; import org.apache.beam.sdk.options.PipelineOptionsRegistrar; import org.apache.beam.vendor.guava.v26_0_jre.com.google.common.collect.ImmutableList; -import org.checkerframework.checker.nullness.qual.Nullable; /** Options that are used to control configuration of the remote environment. */ public interface ResourceHintsOptions extends PipelineOptions { + class EmptyListDefault implements DefaultValueFactory { + @Override + public List create(PipelineOptions options) { + return ImmutableList.of(); + } + } + @Description("Resource hints used for all transform execution environments.") - @Nullable + @Default.InstanceFactory(EmptyListDefault.class) List getResourceHints(); - void setResourceHints(@Nullable List value); + void setResourceHints(List value); /** Register the {@link ResourceHintsOptions}. */ @AutoService(PipelineOptionsRegistrar.class)