GH-3608: Use Locale.ROOT for neutral, case insensitive comparisons

Fixes: #3608
Issue link: https://github.com/spring-projects/spring-kafka/issues/3608

**Auto-cherry-pick to `3.2.x` & `3.1.x`**
This commit is contained in:
Artem Bilan
2024-10-31 11:06:15 -04:00
parent 3769c240bb
commit 07cff76a45
2 changed files with 5 additions and 3 deletions

View File

@@ -30,6 +30,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
@@ -1014,7 +1015,7 @@ public class KafkaListenerAnnotationBeanPostProcessor<K, V>
private TopicPartitionOffset.SeekPosition resloveTopicPartitionOffsetSeekPosition(@Nullable Object seekPosition) {
TopicPartitionOffset.SeekPosition resloveTpoSp = null;
if (seekPosition instanceof String seekPositionName) {
String capitalLetterSeekPositionName = seekPositionName.trim().toUpperCase();
String capitalLetterSeekPositionName = seekPositionName.trim().toUpperCase(Locale.ROOT);
if (SeekPosition.BEGINNING.name().equals(capitalLetterSeekPositionName)) {
resloveTpoSp = SeekPosition.BEGINNING;
}

View File

@@ -24,6 +24,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
@@ -352,13 +353,13 @@ public abstract class AbstractKafkaHeaderMapper implements KafkaHeaderMapper {
SimplePatternBasedHeaderMatcher(String pattern, boolean negate) {
Assert.notNull(pattern, "Pattern must no be null");
this.pattern = pattern.toLowerCase();
this.pattern = pattern.toLowerCase(Locale.ROOT);
this.negate = negate;
}
@Override
public boolean matchHeader(String headerName) {
String header = headerName.toLowerCase();
String header = headerName.toLowerCase(Locale.ROOT);
if (PatternMatchUtils.simpleMatch(this.pattern, header)) {
LOGGER.debug(() ->
MessageFormat.format(