Skip to content

Commit ea2a094

Browse files
authored
Make search attribute type more lenient when parsing (#2788)
1 parent c43aa83 commit ea2a094

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

temporal-sdk/src/main/java/io/temporal/internal/common/SearchAttributePayloadConverter.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,13 +331,19 @@ private static String indexValueTypeToEncodedValue(@Nonnull IndexedValueType ind
331331

332332
@Nullable
333333
private static IndexedValueType encodedValueToIndexValueType(String encodedValue) {
334+
// The type metadata is usually in PascalCase (e.g. "KeywordList") but in rare cases may be in
335+
// SCREAMING_SNAKE_CASE (e.g. "INDEXED_VALUE_TYPE_KEYWORD_LIST").
334336
try {
335337
return IndexedValueType.valueOf(
336338
ProtoEnumNameUtils.simplifiedToUniqueName(
337339
encodedValue, ProtoEnumNameUtils.INDEXED_VALUE_TYPE_PREFIX));
338340
} catch (IllegalArgumentException e) {
339-
log.warn("[BUG] No IndexedValueType mapping for {} value exist", encodedValue);
340-
return null;
341+
try {
342+
return IndexedValueType.valueOf(encodedValue);
343+
} catch (IllegalArgumentException e2) {
344+
log.warn("[BUG] No IndexedValueType mapping for {} value exist", encodedValue);
345+
return null;
346+
}
341347
}
342348
}
343349

0 commit comments

Comments
 (0)