commit
						ffad1b1dca
					
				| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -692,15 +692,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