diff --git a/sdk/common/src/main/java/io/opentelemetry/sdk/common/internal/GlobUtil.java b/sdk/common/src/main/java/io/opentelemetry/sdk/common/internal/GlobUtil.java
index fcc002585ec..7a8394ad363 100644
--- a/sdk/common/src/main/java/io/opentelemetry/sdk/common/internal/GlobUtil.java
+++ b/sdk/common/src/main/java/io/opentelemetry/sdk/common/internal/GlobUtil.java
@@ -98,8 +98,8 @@ public boolean test(String s) {
if (pattern != null) {
return pattern.matcher(s).matches();
}
- // Exact match, ignoring case
- return globPattern.equalsIgnoreCase(s);
+ // Exact match
+ return globPattern.equals(s);
}
@Override
diff --git a/sdk/common/src/main/java/io/opentelemetry/sdk/common/internal/IncludeExcludePredicate.java b/sdk/common/src/main/java/io/opentelemetry/sdk/common/internal/IncludeExcludePredicate.java
index a98efa69769..dd6ba4e63b4 100644
--- a/sdk/common/src/main/java/io/opentelemetry/sdk/common/internal/IncludeExcludePredicate.java
+++ b/sdk/common/src/main/java/io/opentelemetry/sdk/common/internal/IncludeExcludePredicate.java
@@ -21,7 +21,7 @@
*
*
Supports optional glob pattern matching. See {@link GlobUtil}.
*
- *
String equality is evaluated using {@link String#equalsIgnoreCase(String)}.
+ *
String equality is evaluated using {@link String#equals(Object)}.
*
*
This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
@@ -55,7 +55,7 @@ private IncludeExcludePredicate(
}
/**
- * Create a (case-insensitive) exact matching include exclude predicate.
+ * Create a (case-sensitive) exact matching include exclude predicate.
*
* @throws IllegalArgumentException if {@code included} AND {@code excluded} are null.
*/
@@ -101,7 +101,7 @@ private static Predicate includedPredicate(
if (globMatchingEnabled) {
result = result.or(createGlobPatternPredicate(include));
} else {
- result = result.or(include::equalsIgnoreCase);
+ result = result.or(include::equals);
}
}
return result;
@@ -114,7 +114,7 @@ private static Predicate excludedPredicate(
if (globMatchingEnabled) {
result = result.and(createGlobPatternPredicate(exclude).negate());
} else {
- result = result.and(s -> !exclude.equalsIgnoreCase(s));
+ result = result.and(s -> !exclude.equals(s));
}
}
return result;
diff --git a/sdk/common/src/test/java/io/opentelemetry/sdk/common/internal/GlobUtilTest.java b/sdk/common/src/test/java/io/opentelemetry/sdk/common/internal/GlobUtilTest.java
index 448ef39655b..1d8fb2a9bd8 100644
--- a/sdk/common/src/test/java/io/opentelemetry/sdk/common/internal/GlobUtilTest.java
+++ b/sdk/common/src/test/java/io/opentelemetry/sdk/common/internal/GlobUtilTest.java
@@ -24,7 +24,7 @@ void matchesName(String globPattern, String testString, boolean isMatchExpected)
private static Stream globPatternPredicateArgs() {
return Stream.of(
Arguments.of("foo", "foo", true),
- Arguments.of("foo", "Foo", true),
+ Arguments.of("foo", "Foo", false),
Arguments.of("foo", "bar", false),
Arguments.of("fo?", "foo", true),
Arguments.of("fo??", "fooo", true),
@@ -38,6 +38,8 @@ private static Stream globPatternPredicateArgs() {
Arguments.of("*", "", true),
Arguments.of("fo*", "fo", true),
Arguments.of("fo*", "foo", true),
+ Arguments.of("fo*", "foO", true),
+ Arguments.of("fo*", "FOO", false),
Arguments.of("fo*", "fooo", true),
Arguments.of("fo*", "foo.bar.baz", true),
Arguments.of("*bar", "sandbar", true),
@@ -45,6 +47,8 @@ private static Stream globPatternPredicateArgs() {
Arguments.of("fo*b*", "foob", true),
Arguments.of("fo*b*", "foo bar", true),
Arguments.of("fo? b??", "foo bar", true),
+ Arguments.of("fo? b??", "foO bAR", true),
+ Arguments.of("fo? b??", "FOO BAR", false),
Arguments.of("fo? b??", "fooo bar", false),
Arguments.of("fo* ba?", "foo is not bar", true),
Arguments.of("fo? b*", "fox beetles for lunch", true),
diff --git a/sdk/common/src/test/java/io/opentelemetry/sdk/common/internal/IncludeExcludePredicateTest.java b/sdk/common/src/test/java/io/opentelemetry/sdk/common/internal/IncludeExcludePredicateTest.java
index e5f38a61962..2340d1009b0 100644
--- a/sdk/common/src/test/java/io/opentelemetry/sdk/common/internal/IncludeExcludePredicateTest.java
+++ b/sdk/common/src/test/java/io/opentelemetry/sdk/common/internal/IncludeExcludePredicateTest.java
@@ -48,38 +48,57 @@ private static Stream testArgs() {
Arguments.of(EXACT_INCLUDE, "foo", true),
Arguments.of(EXACT_INCLUDE, "bar", false),
Arguments.of(EXACT_INCLUDE, "baz", false),
+ Arguments.of(EXACT_INCLUDE, "Foo", false),
+ Arguments.of(EXACT_INCLUDE, "FOO", false),
// exclude only
Arguments.of(EXACT_EXCLUDE, "foo", true),
Arguments.of(EXACT_EXCLUDE, "bar", false),
Arguments.of(EXACT_EXCLUDE, "baz", true),
+ Arguments.of(EXACT_EXCLUDE, "Bar", true),
+ Arguments.of(EXACT_EXCLUDE, "BAR", true),
// include and exclude
Arguments.of(EXACT_INCLUDE_AND_EXCLUDE, "foo", true),
+ Arguments.of(EXACT_INCLUDE_AND_EXCLUDE, "Foo", false),
+ Arguments.of(EXACT_INCLUDE_AND_EXCLUDE, "FOO", false),
Arguments.of(EXACT_INCLUDE_AND_EXCLUDE, "bar", false),
Arguments.of(EXACT_INCLUDE_AND_EXCLUDE, "baz", false),
// multi
Arguments.of(EXACT_MULTI, "foo", true),
Arguments.of(EXACT_MULTI, "fooo", true),
+ Arguments.of(EXACT_MULTI, "Foo", false),
+ Arguments.of(EXACT_MULTI, "FOO", false),
Arguments.of(EXACT_MULTI, "bar", false),
Arguments.of(EXACT_MULTI, "barr", false),
Arguments.of(EXACT_MULTI, "baz", false),
// pattern matching
// include only
Arguments.of(PATTERN_INCLUDE, "foo", true),
+ Arguments.of(PATTERN_INCLUDE, "fOo", true),
+ Arguments.of(PATTERN_INCLUDE, "Foo", false),
Arguments.of(PATTERN_INCLUDE, "bar", false),
Arguments.of(PATTERN_INCLUDE, "baz", false),
// exclude only
Arguments.of(PATTERN_EXCLUDE, "foo", true),
Arguments.of(PATTERN_EXCLUDE, "bar", false),
+ Arguments.of(PATTERN_EXCLUDE, "bAr", false),
+ Arguments.of(PATTERN_EXCLUDE, "Bar", true),
+ Arguments.of(PATTERN_EXCLUDE, "BAR", true),
Arguments.of(PATTERN_EXCLUDE, "baz", true),
// include and exclude
Arguments.of(PATTERN_INCLUDE_AND_EXCLUDE, "foo", true),
+ Arguments.of(PATTERN_INCLUDE_AND_EXCLUDE, "fOo", true),
+ Arguments.of(PATTERN_INCLUDE_AND_EXCLUDE, "FOO", false),
Arguments.of(PATTERN_INCLUDE_AND_EXCLUDE, "bar", false),
Arguments.of(PATTERN_INCLUDE_AND_EXCLUDE, "baz", false),
// multi
Arguments.of(PATTERN_MULTI, "foo", true),
Arguments.of(PATTERN_MULTI, "fooo", true),
+ Arguments.of(PATTERN_MULTI, "fOo", true),
+ Arguments.of(PATTERN_MULTI, "FOO", false),
Arguments.of(PATTERN_MULTI, "bar", false),
+ Arguments.of(PATTERN_MULTI, "bAr", false),
Arguments.of(PATTERN_MULTI, "barr", false),
+ Arguments.of(PATTERN_MULTI, "bArr", false),
Arguments.of(PATTERN_MULTI, "baz", false));
}