Skip to content

Commit 2871ff0

Browse files
committed
Fix refactoring that broke reflection.
- fix reflective method lookup - also add unit test in the right project.
1 parent 9c222dd commit 2871ff0

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

sdk/common/src/main/java/io/opentelemetry/sdk/resources/internal/EntityUtil.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ private EntityUtil() {}
3737
/** Appends a new entity on to the end of the list of entities. */
3838
public static final ResourceBuilder addEntity(ResourceBuilder rb, Entity e) {
3939
try {
40-
Method method = Resource.class.getDeclaredMethod("add", Entity.class);
40+
Method method = ResourceBuilder.class.getDeclaredMethod("add", Entity.class);
4141
if (method != null) {
4242
method.setAccessible(true);
4343
method.invoke(rb, e);
@@ -55,7 +55,7 @@ public static final ResourceBuilder addEntity(ResourceBuilder rb, Entity e) {
5555
/** Appends a new collection of entities on to the end of the list of entities. */
5656
public static final ResourceBuilder addAllEntity(ResourceBuilder rb, Collection<Entity> e) {
5757
try {
58-
Method method = Resource.class.getDeclaredMethod("addAll", Collection.class);
58+
Method method = ResourceBuilder.class.getDeclaredMethod("addAll", Collection.class);
5959
if (method != null) {
6060
method.setAccessible(true);
6161
method.invoke(rb, e);

sdk/common/src/test/java/io/opentelemetry/sdk/resources/internal/EntityUtilTest.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import static org.assertj.core.api.Assertions.assertThat;
1010

1111
import io.opentelemetry.api.common.Attributes;
12+
import io.opentelemetry.sdk.resources.Resource;
1213
import java.util.Arrays;
1314
import java.util.Collection;
1415
import java.util.Collections;
@@ -246,4 +247,28 @@ void testRawAttributeMerge_entity_with_conflict() {
246247
.containsEntry("b", 2)
247248
.containsEntry("c", 2);
248249
}
250+
251+
@Test
252+
void testAddEntity_reflection() {
253+
Resource result =
254+
EntityUtil.addEntity(
255+
Resource.builder(), Entity.builder("a").withId(id -> id.put("a", 1)).build())
256+
.build();
257+
assertThat(EntityUtil.getEntities(result))
258+
.satisfiesExactlyInAnyOrder(e -> assertThat(e).hasType("a"));
259+
}
260+
261+
@Test
262+
void testAddAllEntity_reflection() {
263+
Resource result =
264+
EntityUtil.addAllEntity(
265+
Resource.builder(),
266+
Arrays.asList(
267+
Entity.builder("a").withId(id -> id.put("a", 1)).build(),
268+
Entity.builder("b").withId(id -> id.put("b", 1)).build()))
269+
.build();
270+
assertThat(EntityUtil.getEntities(result))
271+
.satisfiesExactlyInAnyOrder(
272+
e -> assertThat(e).hasType("a"), e -> assertThat(e).hasType("b"));
273+
}
249274
}

0 commit comments

Comments
 (0)