mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-07-05 00:56:58 +08:00
Merge pull request #34804 from eydunn
* gh-34804: Polish "Fix asymmetry of equals when element has trailing dashes" Fix asymmetry of equals when element has trailing dashes Closes gh-34804
This commit is contained in:
commit
2b89b879f2
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
* Copyright 2012-2023 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -406,7 +406,7 @@ public final class ConfigurationPropertyName implements Comparable<Configuration
|
||||
int i2 = 0;
|
||||
while (i1 < l1) {
|
||||
if (i2 >= l2) {
|
||||
return false;
|
||||
return remainderIsDashes(e1, i, i1);
|
||||
}
|
||||
char ch1 = e1.charAt(i, i1);
|
||||
char ch2 = e2.charAt(i, i2);
|
||||
@ -487,6 +487,21 @@ public final class ConfigurationPropertyName implements Comparable<Configuration
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean remainderIsDashes(Elements elements, int element, int index) {
|
||||
if (elements.getType(element).isIndexed()) {
|
||||
return false;
|
||||
}
|
||||
int length = elements.getLength(element);
|
||||
do {
|
||||
char c = Character.toLowerCase(elements.charAt(element, index++));
|
||||
if (c != '-') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
while (index < length);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int hashCode = this.hashCode;
|
||||
|
@ -693,15 +693,22 @@ class ConfigurationPropertyNameTests {
|
||||
assertThat(n2).isNotEqualTo(n1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void equalsWhenAdaptedNameMatchesDueToRemovalOfTrailingCharacters() {
|
||||
// gh-30317
|
||||
@Test // gh-30317
|
||||
void equalsWhenAdaptedNameMatchesDueToRemovalOfTrailingNonUniformCharacters() {
|
||||
ConfigurationPropertyName name1 = ConfigurationPropertyName.of("example.demo");
|
||||
ConfigurationPropertyName name2 = ConfigurationPropertyName.adapt("example.demo$$", '.');
|
||||
assertThat(name1).isEqualTo(name2);
|
||||
assertThat(name2).isEqualTo(name1);
|
||||
}
|
||||
|
||||
@Test // gh-34804
|
||||
void equalsSymmetricWhenNameMatchesDueToIgnoredTrailingDashes() {
|
||||
ConfigurationPropertyName n1 = ConfigurationPropertyName.of("example.demo");
|
||||
ConfigurationPropertyName n2 = ConfigurationPropertyName.of("example.demo--");
|
||||
assertThat(n2).isEqualTo(n1);
|
||||
assertThat(n1).isEqualTo(n2);
|
||||
}
|
||||
|
||||
@Test
|
||||
void isValidWhenValidShouldReturnTrue() {
|
||||
assertThat(ConfigurationPropertyName.isValid("")).isTrue();
|
||||
|
Loading…
Reference in New Issue
Block a user