|
27 | 27 | import datadog.trace.payloadtags.PayloadTagsData; |
28 | 28 | import java.net.URI; |
29 | 29 | import java.time.Instant; |
30 | | -import java.util.ArrayDeque; |
31 | 30 | import java.util.ArrayList; |
32 | 31 | import java.util.Collection; |
33 | 32 | import java.util.Collections; |
@@ -461,39 +460,37 @@ protected String getResponseHeader(SdkHttpResponse response, String headerName) |
461 | 460 |
|
462 | 461 | private void awsPojoToTags(AgentSpan span, String tagsPrefix, Object pojo) { |
463 | 462 | Collection<PayloadTagsData.PathAndValue> payloadTagsData = new ArrayList<>(); |
464 | | - ArrayDeque<Object> path = new ArrayDeque<>(); |
| 463 | + List<Object> path = new ArrayList<>(); |
465 | 464 | collectPayloadTagsData(payloadTagsData, path, pojo); |
466 | 465 | span.setTag( |
467 | 466 | tagsPrefix, |
468 | 467 | new PayloadTagsData(payloadTagsData.toArray(new PayloadTagsData.PathAndValue[0]))); |
469 | 468 | } |
470 | 469 |
|
471 | 470 | private void collectPayloadTagsData( |
472 | | - Collection<PayloadTagsData.PathAndValue> payloadTagsData, |
473 | | - ArrayDeque<Object> path, |
474 | | - Object object) { |
| 471 | + Collection<PayloadTagsData.PathAndValue> payloadTagsData, List<Object> path, Object object) { |
475 | 472 | if (object instanceof SdkPojo) { |
476 | 473 | SdkPojo pojo = (SdkPojo) object; |
477 | 474 | for (SdkField<?> field : pojo.sdkFields()) { |
478 | 475 | Object val = field.getValueOrDefault(pojo); |
479 | | - path.push(field.locationName()); |
| 476 | + path.add(field.locationName()); |
480 | 477 | collectPayloadTagsData(payloadTagsData, path, val); |
481 | | - path.pop(); |
| 478 | + path.remove(path.size() - 1); |
482 | 479 | } |
483 | 480 | } else if (object instanceof Collection) { |
484 | 481 | int index = 0; |
485 | 482 | for (Object value : (Collection<?>) object) { |
486 | | - path.push(index); |
| 483 | + path.add(index); |
487 | 484 | collectPayloadTagsData(payloadTagsData, path, value); |
488 | | - path.pop(); |
| 485 | + path.remove(path.size() - 1); |
489 | 486 | index++; |
490 | 487 | } |
491 | 488 | } else if (object instanceof Map) { |
492 | 489 | Map<?, ?> map = (Map<?, ?>) object; |
493 | 490 | for (Map.Entry<?, ?> entry : map.entrySet()) { |
494 | | - path.push(entry.getKey().toString()); |
| 491 | + path.add(entry.getKey().toString()); |
495 | 492 | collectPayloadTagsData(payloadTagsData, path, entry.getValue()); |
496 | | - path.pop(); |
| 493 | + path.remove(path.size() - 1); |
497 | 494 | } |
498 | 495 | } else if (object instanceof SdkBytes) { |
499 | 496 | SdkBytes bytes = (SdkBytes) object; |
|
0 commit comments