Skip to content

Commit 03f2db7

Browse files
authored
Allow SDK to build on JDK 17 (#3037)
* Update environment variable helpers to mock out environment variable loading via SystemSettings. This fixes an issue where the existing environment variable helpers did not work on Java 17, because it relied on reflectivly modifying the environment variable map directly. * Update Mockito to 4.x to allow building on JDK 17. * Fixed some findbugs issues.
1 parent 2f4b44d commit 03f2db7

File tree

176 files changed

+871
-615
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

176 files changed

+871
-615
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"category": "AWS SDK for Java v2",
3+
"contributor": "",
4+
"type": "feature",
5+
"description": "Update SDK to be able to successfully build using JDK 17."
6+
}

build-tools/src/main/resources/software/amazon/awssdk/checkstyle.xml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,10 +345,20 @@
345345
<module name="Regexp">
346346
<property name="format" value="System\s*(\.|::)\s*(getenv|getProperty)"/>
347347
<property name="illegalPattern" value="true"/>
348-
<property name="message" value="Use SystemSetting instead of System.getenv and System.getProperty"/>
348+
<property name="message" value="NEVER use System.getenv or System.getProperty. Create and use a
349+
SystemSetting, instead."/>
349350
<property name="ignoreComments" value="true"/>
350351
</module>
351352

353+
<module name="Regexp">
354+
<property name="format" value="SystemSetting\s*(\.|::)\s*getStringValueFromEnvironmentVariable"/>
355+
<property name="illegalPattern" value="true"/>
356+
<property name="message" value="Are you being naughty and not creating a SystemSetting? Don't you know that
357+
your customers want both system properties AND environment variables? Are you REALLY sure you want to use
358+
this and not support a system property?"/>
359+
<property name="ignoreComments" value="true"/>
360+
</module>
361+
352362
<!-- Checks that we don't implement AutoCloseable/Closeable -->
353363
<module name="Regexp">
354364
<property name="format" value="(class|interface).*(implements|extends).*[^\w](Closeable|AutoCloseable)[^\w]"/>

build-tools/src/main/resources/software/amazon/awssdk/spotbugs-suppressions.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@
167167
<Class name="software.amazon.awssdk.protocols.json.internal.dom.JsonDomParser"/>
168168
<Class name="software.amazon.awssdk.testutils.service.AwsIntegrationTestBase"/>
169169
<Class name="software.amazon.awssdk.protocol.asserts.marshalling.XmlAsserts" />
170+
<Class name="software.amazon.awssdk.testutils.FileUtils"/>
170171
</Or>
171172
<Bug pattern="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE"/>
172173
</Match>
@@ -224,4 +225,9 @@
224225
<Method name="create"/>
225226
<Bug pattern="ISC_INSTANTIATE_STATIC_CLASS"/>
226227
</Match>
228+
229+
<!-- This is very buggy https://github.com/spotbugs/spotbugs/issues/1539 -->
230+
<Match>
231+
<Bug pattern="DMI_RANDOM_USED_ONLY_ONCE" />
232+
</Match>
227233
</FindBugsFilter>

codegen/src/test/java/software/amazon/awssdk/codegen/naming/DefaultNamingStrategyTest.java

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
import static java.util.Collections.singletonList;
1919
import static org.assertj.core.api.Assertions.assertThat;
2020
import static org.assertj.core.api.Assertions.assertThatThrownBy;
21-
import static org.mockito.Matchers.any;
22-
import static org.mockito.Matchers.eq;
21+
import static org.mockito.ArgumentMatchers.any;
22+
import static org.mockito.ArgumentMatchers.eq;
2323
import static org.mockito.Mockito.mock;
2424
import static org.mockito.Mockito.when;
2525

@@ -31,7 +31,7 @@
3131
import org.junit.Test;
3232
import org.junit.runner.RunWith;
3333
import org.mockito.Mock;
34-
import org.mockito.runners.MockitoJUnitRunner;
34+
import org.mockito.junit.MockitoJUnitRunner;
3535
import software.amazon.awssdk.codegen.model.config.customization.CustomizationConfig;
3636
import software.amazon.awssdk.codegen.model.config.customization.UnderscoresInNameBehavior;
3737
import software.amazon.awssdk.codegen.model.config.customization.ShareModelConfig;
@@ -139,7 +139,6 @@ public void test_GetFluentSetterMethodName_NoEnum() {
139139
@Test
140140
public void test_GetFluentSetterMethodName_NoEnum_WithList() {
141141
when(serviceModel.getShapes()).thenReturn(mockShapeMap);
142-
when(mockShapeMap.get(eq("MockShape"))).thenReturn(mockShape);
143142
when(mockShapeMap.get(eq("MockStringShape"))).thenReturn(mockStringShape);
144143

145144
when(mockShape.getEnumValues()).thenReturn(null);
@@ -157,7 +156,6 @@ public void test_GetFluentSetterMethodName_NoEnum_WithList() {
157156
@Test
158157
public void test_GetFluentSetterMethodName_WithEnumShape_NoListOrMap() {
159158
when(serviceModel.getShapes()).thenReturn(mockShapeMap);
160-
when(mockShapeMap.get(any())).thenReturn(mockShape);
161159
when(mockShape.getEnumValues()).thenReturn(new ArrayList<>());
162160
when(mockShape.getType()).thenReturn("foo");
163161

@@ -167,7 +165,6 @@ public void test_GetFluentSetterMethodName_WithEnumShape_NoListOrMap() {
167165
@Test
168166
public void test_GetFluentSetterMethodName_WithEnumShape_WithList() {
169167
when(serviceModel.getShapes()).thenReturn(mockShapeMap);
170-
when(mockShapeMap.get(eq("MockShape"))).thenReturn(mockShape);
171168
when(mockShapeMap.get(eq("MockStringShape"))).thenReturn(mockStringShape);
172169

173170
when(mockShape.getEnumValues()).thenReturn(null);
@@ -182,13 +179,6 @@ public void test_GetFluentSetterMethodName_WithEnumShape_WithList() {
182179
assertThat(strat.getFluentSetterMethodName("AwesomeMethod", mockParentShape, mockShape)).isEqualTo("awesomeMethodWithStrings");
183180
}
184181

185-
@Test
186-
public void test_GetFluentSetterMethodName_NoEum_WithMap() {
187-
when(serviceModel.getShapes()).thenReturn(mockShapeMap);
188-
when(mockShape.getEnumValues()).thenReturn(new ArrayList<>());
189-
190-
}
191-
192182
@Test
193183
public void nonSharedModel_packageName() {
194184
String serviceName = "foo";
@@ -259,8 +249,6 @@ public void modelNameShouldHavePascalCase() {
259249
public void getServiceName_Uses_ServiceId() {
260250
when(serviceModel.getMetadata()).thenReturn(serviceMetadata);
261251
when(serviceMetadata.getServiceId()).thenReturn("Foo");
262-
when(serviceMetadata.getServiceAbbreviation()).thenReturn("Abbr");
263-
when(serviceMetadata.getServiceFullName()).thenReturn("Foo Service");
264252

265253
assertThat(strat.getServiceName()).isEqualTo("Foo");
266254
}
@@ -269,8 +257,6 @@ public void getServiceName_Uses_ServiceId() {
269257
public void getServiceName_ThrowsException_WhenServiceIdIsNull() {
270258
when(serviceModel.getMetadata()).thenReturn(serviceMetadata);
271259
when(serviceMetadata.getServiceId()).thenReturn(null);
272-
when(serviceMetadata.getServiceAbbreviation()).thenReturn("Abbr");
273-
when(serviceMetadata.getServiceFullName()).thenReturn("Foo Service");
274260

275261
strat.getServiceName();
276262
}
@@ -279,8 +265,6 @@ public void getServiceName_ThrowsException_WhenServiceIdIsNull() {
279265
public void getServiceName_ThrowsException_WhenServiceIdIsEmpty() {
280266
when(serviceModel.getMetadata()).thenReturn(serviceMetadata);
281267
when(serviceMetadata.getServiceId()).thenReturn("");
282-
when(serviceMetadata.getServiceAbbreviation()).thenReturn("Abbr");
283-
when(serviceMetadata.getServiceFullName()).thenReturn("Foo Service");
284268

285269
strat.getServiceName();
286270
}
@@ -289,8 +273,6 @@ public void getServiceName_ThrowsException_WhenServiceIdIsEmpty() {
289273
public void getServiceName_ThrowsException_WhenServiceIdHasWhiteSpace() {
290274
when(serviceModel.getMetadata()).thenReturn(serviceMetadata);
291275
when(serviceMetadata.getServiceId()).thenReturn(" ");
292-
when(serviceMetadata.getServiceAbbreviation()).thenReturn("Abbr");
293-
when(serviceMetadata.getServiceFullName()).thenReturn("Foo Service");
294276

295277
strat.getServiceName();
296278
}

core/auth-crt/src/test/java/software/amazon/awssdk/authcrt/signer/AwsCrtS3V4aSignerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import org.junit.Before;
2424
import org.junit.Test;
2525
import org.junit.runner.RunWith;
26-
import org.mockito.runners.MockitoJUnitRunner;
26+
import org.mockito.junit.MockitoJUnitRunner;
2727
import software.amazon.awssdk.auth.signer.internal.chunkedencoding.AwsSignedChunkedEncodingInputStream;
2828
import software.amazon.awssdk.authcrt.signer.internal.SigningConfigProvider;
2929
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;

core/auth-crt/src/test/java/software/amazon/awssdk/authcrt/signer/AwsCrtV4aSignerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.junit.Before;
2323
import org.junit.Test;
2424
import org.junit.runner.RunWith;
25-
import org.mockito.runners.MockitoJUnitRunner;
25+
import org.mockito.junit.MockitoJUnitRunner;
2626
import software.amazon.awssdk.authcrt.signer.internal.SigningConfigProvider;
2727
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
2828
import software.amazon.awssdk.crt.auth.signing.AwsSigningConfig;

core/auth-crt/src/test/java/software/amazon/awssdk/authcrt/signer/internal/AwsChunkedEncodingInputStreamTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package software.amazon.awssdk.authcrt.signer.internal;
1717

1818
import static org.assertj.core.api.Assertions.assertThat;
19-
import static org.mockito.Matchers.any;
19+
import static org.mockito.ArgumentMatchers.any;
2020
import static org.mockito.Mockito.times;
2121
import static org.mockito.Mockito.when;
2222

@@ -34,7 +34,7 @@
3434
import org.junit.runner.RunWith;
3535
import org.mockito.Mock;
3636
import org.mockito.Mockito;
37-
import org.mockito.runners.MockitoJUnitRunner;
37+
import org.mockito.junit.MockitoJUnitRunner;
3838
import software.amazon.awssdk.core.internal.chunked.AwsChunkedEncodingConfig;
3939
import software.amazon.awssdk.auth.signer.internal.chunkedencoding.AwsSignedChunkedEncodingInputStream;
4040
import software.amazon.awssdk.authcrt.signer.internal.chunkedencoding.AwsS3V4aChunkSigner;

core/auth-crt/src/test/java/software/amazon/awssdk/authcrt/signer/internal/ChunkedEncodingFunctionalTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import static org.assertj.core.api.Assertions.assertThat;
1919
import static org.junit.Assert.assertTrue;
20-
import static org.mockito.Matchers.any;
20+
import static org.mockito.ArgumentMatchers.any;
2121
import static org.mockito.Mockito.when;
2222
import static software.amazon.awssdk.authcrt.signer.internal.SigningUtils.SIGNING_CLOCK;
2323
import static software.amazon.awssdk.authcrt.signer.internal.SigningUtils.buildCredentials;
@@ -41,7 +41,7 @@
4141
import org.junit.Test;
4242
import org.junit.runner.RunWith;
4343
import org.mockito.Mock;
44-
import org.mockito.runners.MockitoJUnitRunner;
44+
import org.mockito.junit.MockitoJUnitRunner;
4545
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
4646
import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute;
4747
import software.amazon.awssdk.core.internal.chunked.AwsChunkedEncodingConfig;
@@ -139,8 +139,6 @@ public void setup() throws Exception {
139139
executionAttributes = buildBasicExecutionAttributes();
140140
chunkedRequestSigningConfig = createChunkedRequestSigningConfig(executionAttributes);
141141
chunkSigningConfig = createChunkSigningConfig(executionAttributes);
142-
when(configProvider.createS3CrtSigningConfig(any())).thenReturn(chunkedRequestSigningConfig);
143-
when(configProvider.createChunkedSigningConfig(any())).thenReturn(createChunkSigningConfig(buildBasicExecutionAttributes()));
144142
}
145143

146144
@Test

core/auth-crt/src/test/java/software/amazon/awssdk/authcrt/signer/internal/DefaultAwsCrtS3V4aSignerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package software.amazon.awssdk.authcrt.signer.internal;
1717

1818
import static org.assertj.core.api.Assertions.assertThat;
19-
import static org.mockito.Matchers.any;
19+
import static org.mockito.ArgumentMatchers.any;
2020
import static org.mockito.Mockito.when;
2121

2222
import java.net.URI;
@@ -27,7 +27,7 @@
2727
import org.mockito.ArgumentCaptor;
2828
import org.mockito.Mock;
2929
import org.mockito.Mockito;
30-
import org.mockito.runners.MockitoJUnitRunner;
30+
import org.mockito.junit.MockitoJUnitRunner;
3131
import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider;
3232
import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute;
3333
import software.amazon.awssdk.auth.signer.S3SignerExecutionAttribute;

core/auth/src/main/java/software/amazon/awssdk/auth/credentials/EnvironmentVariableCredentialsProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public static EnvironmentVariableCredentialsProvider create() {
3939
protected Optional<String> loadSetting(SystemSetting setting) {
4040
// CHECKSTYLE:OFF - Customers should be able to specify a credentials provider that only looks at the environment
4141
// variables, but not the system properties. For that reason, we're only checking the environment variable here.
42-
return Optional.ofNullable(System.getenv(setting.environmentVariable()));
42+
return SystemSetting.getStringValueFromEnvironmentVariable(setting.environmentVariable());
4343
// CHECKSTYLE:ON
4444
}
4545

core/auth/src/test/java/software/amazon/awssdk/auth/credentials/internal/LazyAwsCredentialsProviderTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public void reset() {
3737
@Test
3838
public void creationDoesntInvokeSupplier() {
3939
LazyAwsCredentialsProvider.create(credentialsConstructor);
40-
Mockito.verifyZeroInteractions(credentialsConstructor);
40+
Mockito.verifyNoMoreInteractions(credentialsConstructor);
4141
}
4242

4343
@Test

core/auth/src/test/java/software/amazon/awssdk/auth/signer/Aws4EventStreamSignerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package software.amazon.awssdk.auth.signer;
1717

1818
import static org.junit.jupiter.api.Assertions.fail;
19-
import static org.mockito.Matchers.any;
19+
import static org.mockito.ArgumentMatchers.any;
2020
import static org.mockito.Mockito.never;
2121
import static org.mockito.Mockito.times;
2222
import static org.mockito.Mockito.verify;

core/auth/src/test/java/software/amazon/awssdk/auth/signer/Aws4SignerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import org.junit.Test;
3434
import org.junit.runner.RunWith;
3535
import org.mockito.Mock;
36-
import org.mockito.runners.MockitoJUnitRunner;
36+
import org.mockito.junit.MockitoJUnitRunner;
3737
import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider;
3838
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
3939
import software.amazon.awssdk.auth.credentials.AwsCredentials;

core/auth/src/test/java/software/amazon/awssdk/auth/signer/NonStreamingAsyncBodyAws4SignerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import static org.assertj.core.api.Assertions.assertThat;
1919
import static org.assertj.core.api.Assertions.assertThatThrownBy;
20-
import static org.mockito.Matchers.any;
20+
import static org.mockito.ArgumentMatchers.any;
2121
import static org.mockito.Mockito.doAnswer;
2222
import static org.mockito.Mockito.mock;
2323
import static org.mockito.Mockito.verify;
@@ -138,7 +138,7 @@ public void test_sign_futureCancelled_propagatedToPublisher() {
138138
AsyncRequestBody mockRequestBody = mock(AsyncRequestBody.class);
139139
Subscription mockSubscription = mock(Subscription.class);
140140
doAnswer((Answer<Void>) invocationOnMock -> {
141-
Subscriber subscriber = invocationOnMock.getArgumentAt(0, Subscriber.class);
141+
Subscriber subscriber = invocationOnMock.getArgument(0, Subscriber.class);
142142
subscriber.onSubscribe(mockSubscription);
143143
return null;
144144
}).when(mockRequestBody).subscribe(any(Subscriber.class));

core/auth/src/test/java/software/amazon/awssdk/auth/signer/internal/AwsChunkedEncodingInputStreamTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package software.amazon.awssdk.auth.signer.internal;
1717

1818
import static org.assertj.core.api.Assertions.assertThat;
19-
import static org.mockito.Matchers.any;
19+
import static org.mockito.ArgumentMatchers.any;
2020
import static org.mockito.Mockito.times;
2121
import static org.mockito.Mockito.when;
2222

@@ -33,7 +33,7 @@
3333
import org.junit.runner.RunWith;
3434
import org.mockito.Mock;
3535
import org.mockito.Mockito;
36-
import org.mockito.runners.MockitoJUnitRunner;
36+
import org.mockito.junit.MockitoJUnitRunner;
3737
import software.amazon.awssdk.core.internal.chunked.AwsChunkedEncodingConfig;
3838
import software.amazon.awssdk.auth.signer.internal.chunkedencoding.AwsSignedChunkedEncodingInputStream;
3939
import software.amazon.awssdk.auth.signer.internal.chunkedencoding.AwsS3V4ChunkSigner;

core/auth/src/test/java/software/amazon/awssdk/auth/signer/internal/DigestComputingSubscriberTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import static org.assertj.core.api.Assertions.assertThat;
1919
import static org.assertj.core.api.Assertions.assertThatThrownBy;
20-
import static org.mockito.Matchers.anyLong;
20+
import static org.mockito.ArgumentMatchers.anyLong;
2121
import static org.mockito.Mockito.mock;
2222
import static org.mockito.Mockito.times;
2323
import static org.mockito.Mockito.verify;

core/aws-core/src/test/java/software/amazon/awssdk/awscore/client/builder/DefaultAwsClientBuilderTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package software.amazon.awssdk.awscore.client.builder;
1717

1818
import static org.assertj.core.api.Assertions.assertThat;
19-
import static org.mockito.Matchers.any;
19+
import static org.mockito.ArgumentMatchers.any;
2020
import static org.mockito.Mockito.mock;
2121
import static org.mockito.Mockito.never;
2222
import static org.mockito.Mockito.times;
@@ -39,7 +39,7 @@
3939
import org.junit.Test;
4040
import org.junit.runner.RunWith;
4141
import org.mockito.Mock;
42-
import org.mockito.runners.MockitoJUnitRunner;
42+
import org.mockito.junit.MockitoJUnitRunner;
4343
import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider;
4444
import software.amazon.awssdk.auth.signer.Aws4Signer;
4545
import software.amazon.awssdk.awscore.defaultsmode.DefaultsMode;
@@ -84,7 +84,6 @@ public class DefaultAwsClientBuilderTest {
8484
public void setup() {
8585
when(defaultHttpClientBuilder.buildWithDefaults(any())).thenReturn(mock(SdkHttpClient.class));
8686
when(defaultAsyncHttpClientFactory.buildWithDefaults(any())).thenReturn(mock(SdkAsyncHttpClient.class));
87-
when(autoModeDiscovery.discover(any())).thenReturn(DefaultsMode.IN_REGION);
8887
}
8988

9089
@Test

core/aws-core/src/test/java/software/amazon/awssdk/awscore/client/builder/DefaultsModeTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package software.amazon.awssdk.awscore.client.builder;
1717

1818
import static org.assertj.core.api.Assertions.assertThat;
19-
import static org.mockito.Matchers.any;
19+
import static org.mockito.ArgumentMatchers.any;
2020
import static org.mockito.Mockito.mock;
2121
import static org.mockito.Mockito.when;
2222
import static software.amazon.awssdk.awscore.client.config.AwsAdvancedClientOption.ENABLE_DEFAULT_REGION_DETECTION;
@@ -29,7 +29,7 @@
2929
import org.junit.Test;
3030
import org.junit.runner.RunWith;
3131
import org.mockito.Mock;
32-
import org.mockito.runners.MockitoJUnitRunner;
32+
import org.mockito.junit.MockitoJUnitRunner;
3333
import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider;
3434
import software.amazon.awssdk.awscore.defaultsmode.DefaultsMode;
3535
import software.amazon.awssdk.awscore.internal.defaultsmode.AutoDefaultsModeDiscovery;

core/aws-core/src/test/java/software/amazon/awssdk/awscore/client/handler/AwsExecutionContextBuilderTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package software.amazon.awssdk.awscore.client.handler;
1717

1818
import static org.assertj.core.api.Assertions.assertThat;
19-
import static org.mockito.Matchers.any;
19+
import static org.mockito.ArgumentMatchers.any;
2020
import static org.mockito.Mockito.times;
2121
import static org.mockito.Mockito.verify;
2222
import static org.mockito.Mockito.when;
@@ -29,7 +29,7 @@
2929
import org.junit.Test;
3030
import org.junit.runner.RunWith;
3131
import org.mockito.Mock;
32-
import org.mockito.runners.MockitoJUnitRunner;
32+
import org.mockito.junit.MockitoJUnitRunner;
3333
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
3434
import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute;
3535
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;

core/metrics-spi/src/main/java/software/amazon/awssdk/metrics/internal/DefaultMetricCollection.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public DefaultMetricCollection(String name, Map<SdkMetric<?>,
4141
List<MetricRecord<?>>> metrics, List<MetricCollection> children) {
4242
this.name = name;
4343
this.metrics = new HashMap<>(metrics);
44-
this.children = children != null ? Collections.unmodifiableList(new ArrayList<>(children)) : Collections.emptyList();
44+
this.children = children != null ? new ArrayList<>(children) : Collections.emptyList();
4545
this.creationTime = Instant.now();
4646
}
4747

@@ -65,7 +65,7 @@ public <T> List<T> metricValues(SdkMetric<T> metric) {
6565

6666
@Override
6767
public List<MetricCollection> children() {
68-
return children;
68+
return Collections.unmodifiableList(children);
6969
}
7070

7171
@Override

core/profiles/src/main/java/software/amazon/awssdk/profiles/Profile.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ private Boolean parseBooleanProperty(String propertyKey, String property) {
108108
* Retrieve an unmodifiable view of all of the properties currently in this profile.
109109
*/
110110
public Map<String, String> properties() {
111-
return properties;
111+
return Collections.unmodifiableMap(properties);
112112
}
113113

114114
@Override

0 commit comments

Comments
 (0)