Skip to content

Commit d44e727

Browse files
committed
Don't allocate when already valid length
1 parent 59ab595 commit d44e727

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

sdk/common/src/main/java/io/opentelemetry/sdk/internal/AttributeUtil.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,13 +156,21 @@ private static Value<?> applyValueLengthLimit(Value<?> value, int lengthLimit) {
156156
return Value.of(truncated);
157157
} else if (type == ValueType.ARRAY) {
158158
List<Value<?>> array = (List<Value<?>>) value.getValue();
159+
boolean allValidLength = allMatch(array, element -> isValidLengthValue(element, lengthLimit));
160+
if (allValidLength) {
161+
return value;
162+
}
159163
List<Value<?>> result = new ArrayList<>(array.size());
160164
for (Value<?> element : array) {
161165
result.add(applyValueLengthLimit(element, lengthLimit));
162166
}
163167
return Value.of(result);
164168
} else if (type == ValueType.KEY_VALUE_LIST) {
165169
List<KeyValue> kvList = (List<KeyValue>) value.getValue();
170+
boolean allValidLength = allMatch(kvList, kv -> isValidLengthValue(kv.getValue(), lengthLimit));
171+
if (allValidLength) {
172+
return value;
173+
}
166174
List<KeyValue> result = new ArrayList<>(kvList.size());
167175
for (KeyValue kv : kvList) {
168176
result.add(KeyValue.of(kv.getKey(), applyValueLengthLimit(kv.getValue(), lengthLimit)));

0 commit comments

Comments
 (0)