diff --git a/src/test/java/com/datadog/api/World.java b/src/test/java/com/datadog/api/World.java index 7cf1d7e8ce3..9b81f40d968 100644 --- a/src/test/java/com/datadog/api/World.java +++ b/src/test/java/com/datadog/api/World.java @@ -681,7 +681,17 @@ public static Object lookup(Object data, String path) } if (part.contains("]")) { int index = Integer.parseInt(part.replaceAll("]", "")); - result = List.class.cast(result).get(index); + // Unwrap oneOf wrapper before indexing into array + try { + result = List.class.cast(result).get(index); + } catch (ClassCastException e) { + try { + Object unwrapped = result.getClass().getMethod("getActualInstance").invoke(result); + result = List.class.cast(unwrapped).get(index); + } catch (Exception ex) { + throw e; + } + } } else { try { result = HashMap.class.cast(result).get(part);