From 4edccf42f05b1c43dd9946fdbbcae59fb368f87d Mon Sep 17 00:00:00 2001 From: Ethan Katnic Date: Wed, 21 Aug 2024 10:44:18 -0700 Subject: [PATCH] Add region validation to region setting in NestedPropertyProcessor --- .../amazon/kinesis/multilang/NestedPropertyKey.java | 10 ++++++++-- .../kinesis/multilang/NestedPropertyKeyTest.java | 5 +---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/multilang/NestedPropertyKey.java b/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/multilang/NestedPropertyKey.java index 9902d28c..13acfeb1 100644 --- a/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/multilang/NestedPropertyKey.java +++ b/amazon-kinesis-client-multilang/src/main/java/software/amazon/kinesis/multilang/NestedPropertyKey.java @@ -15,6 +15,7 @@ package software.amazon.kinesis.multilang; import java.util.HashMap; +import java.util.List; import java.util.Map; import com.google.common.base.CaseFormat; @@ -73,8 +74,13 @@ public enum NestedPropertyKey { * @see Available Regions */ ENDPOINT_REGION { - void visit(final NestedPropertyProcessor processor, final String region) { - processor.acceptEndpointRegion(Region.of(region)); + void visit(final NestedPropertyProcessor processor, final String regionName) { + List validRegions = Region.regions(); + Region region = Region.of(regionName); + if (!validRegions.contains(region)) { + throw new IllegalArgumentException("Invalid region name: " + regionName); + } + processor.acceptEndpointRegion(region); } }, diff --git a/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/NestedPropertyKeyTest.java b/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/NestedPropertyKeyTest.java index 350b9fac..3c2de9c9 100644 --- a/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/NestedPropertyKeyTest.java +++ b/amazon-kinesis-client-multilang/src/test/java/software/amazon/kinesis/multilang/NestedPropertyKeyTest.java @@ -70,10 +70,7 @@ public class NestedPropertyKeyTest { verify(mockProcessor).acceptEndpointRegion(expectedRegion); } - // Region.of(), which is invoked in this test, no longer throws an IllegalArgumentException when given an invalid - // region - // We would need to implement our own region validation to maintain this test - // @Test(expected = IllegalArgumentException.class) + @Test(expected = IllegalArgumentException.class) public void testInvalidEndpointRegion() { parse(mockProcessor, createKey(ENDPOINT_REGION, "snuffleupagus")); }