Merge branch '6.1.x'

This commit is contained in:
Juergen Hoeller 2024-05-01 15:42:14 +02:00
commit 649a537891
2 changed files with 13 additions and 4 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2019 the original author or authors. * Copyright 2002-2024 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -48,7 +48,7 @@ public class PropertiesPropertySource extends MapPropertySource {
@Override @Override
public String[] getPropertyNames() { public String[] getPropertyNames() {
synchronized (this.source) { synchronized (this.source) {
return super.getPropertyNames(); return ((Map<?, ?>) this.source).keySet().stream().filter(k -> k instanceof String).toArray(String[]::new);
} }
} }

View File

@ -16,7 +16,9 @@
package org.springframework.core.env; package org.springframework.core.env;
import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@ -302,6 +304,12 @@ class StandardEnvironmentTests {
assertThat(systemProperties.get(DISALLOWED_PROPERTY_NAME)).isEqualTo(DISALLOWED_PROPERTY_VALUE); assertThat(systemProperties.get(DISALLOWED_PROPERTY_NAME)).isEqualTo(DISALLOWED_PROPERTY_VALUE);
assertThat(systemProperties.get(STRING_PROPERTY_NAME)).isEqualTo(NON_STRING_PROPERTY_VALUE); assertThat(systemProperties.get(STRING_PROPERTY_NAME)).isEqualTo(NON_STRING_PROPERTY_VALUE);
assertThat(systemProperties.get(NON_STRING_PROPERTY_NAME)).isEqualTo(STRING_PROPERTY_VALUE); assertThat(systemProperties.get(NON_STRING_PROPERTY_NAME)).isEqualTo(STRING_PROPERTY_VALUE);
PropertiesPropertySource systemPropertySource = (PropertiesPropertySource)
environment.getPropertySources().get(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME);
Set<String> expectedKeys = new HashSet<>(System.getProperties().stringPropertyNames());
expectedKeys.add(STRING_PROPERTY_NAME); // filtered out by stringPropertyNames due to non-String value
assertThat(Set.of(systemPropertySource.getPropertyNames())).isEqualTo(expectedKeys);
} }
finally { finally {
System.clearProperty(ALLOWED_PROPERTY_NAME); System.clearProperty(ALLOWED_PROPERTY_NAME);
@ -318,6 +326,7 @@ class StandardEnvironmentTests {
assertThat(System.getenv()).isSameAs(systemEnvironment); assertThat(System.getenv()).isSameAs(systemEnvironment);
} }
@Nested @Nested
class GetActiveProfiles { class GetActiveProfiles {
@ -367,6 +376,7 @@ class StandardEnvironmentTests {
} }
} }
@Nested @Nested
class AcceptsProfilesTests { class AcceptsProfilesTests {
@ -449,9 +459,9 @@ class StandardEnvironmentTests {
environment.addActiveProfile("p2"); environment.addActiveProfile("p2");
assertThat(environment.acceptsProfiles(Profiles.of("p1 & p2"))).isTrue(); assertThat(environment.acceptsProfiles(Profiles.of("p1 & p2"))).isTrue();
} }
} }
@Nested @Nested
class MatchesProfilesTests { class MatchesProfilesTests {
@ -551,7 +561,6 @@ class StandardEnvironmentTests {
assertThat(environment.matchesProfiles("p2 & (foo | p1)")).isTrue(); assertThat(environment.matchesProfiles("p2 & (foo | p1)")).isTrue();
assertThat(environment.matchesProfiles("foo", "(p2 & p1)")).isTrue(); assertThat(environment.matchesProfiles("foo", "(p2 & p1)")).isTrue();
} }
} }
} }