Skip to content

Commit cf70171

Browse files
committed
Bug Fix - ConfigurationPropertyName#equals is not symmetric with trailing dashes in an element. See also: spring-projectsgh-30393
1 parent be014ca commit cf70171

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/ConfigurationPropertyName.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ private boolean dashIgnoringElementEquals(Elements e1, Elements e2, int i) {
406406
int i2 = 0;
407407
while (i1 < l1) {
408408
if (i2 >= l2) {
409-
return false;
409+
return remainderIsNotAlphanumeric(e1, i, i1);
410410
}
411411
char ch1 = e1.charAt(i, i1);
412412
char ch2 = e2.charAt(i, i2);

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/source/ConfigurationPropertyNameTests.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,14 @@ void equalsWhenAdaptedNameMatchesDueToRemovalOfTrailingCharacters() {
701701
assertThat(name2).isEqualTo(name1);
702702
}
703703

704+
@Test
705+
void equalsSymmetricWhenNameMatchesDueToRemovalOfTrailingDashes() {
706+
ConfigurationPropertyName n1 = ConfigurationPropertyName.of("foobar");
707+
ConfigurationPropertyName n2 = ConfigurationPropertyName.of("foobar--");
708+
assertThat(n1).isEqualTo(n2);
709+
assertThat(n2).isEqualTo(n1);
710+
}
711+
704712
@Test
705713
void isValidWhenValidShouldReturnTrue() {
706714
assertThat(ConfigurationPropertyName.isValid("")).isTrue();

0 commit comments

Comments
 (0)