Skip to content

Commit d9bda26

Browse files
committed
fix: invoke executeJs using reflection
1 parent d6ea20f commit d9bda26

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigration.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,17 @@ public static void setPropertyJson(Element element, String name, JsonValue json)
116116
invoke(Element_setPropertyJson, element, name, json);
117117
}
118118

119+
private static Method Element_executeJs = lookup_executeJs();
120+
121+
@SneakyThrows
122+
private static Method lookup_executeJs() {
123+
if (Version.getMajorVersion() > 24) {
124+
return Element.class.getMethod("executeJs", String.class, Object[].class);
125+
} else {
126+
return Element.class.getMethod("executeJs", String.class, Serializable[].class);
127+
}
128+
}
129+
119130
/**
120131
* Asynchronously runs the given JavaScript expression in the browser in the context of this
121132
* element.
@@ -128,7 +139,8 @@ public static void setPropertyJson(Element element, String name, JsonValue json)
128139
*/
129140
public static ElementalPendingJavaScriptResult executeJs(Element element, String expression,
130141
Serializable... parameters) {
131-
PendingJavaScriptResult result = element.executeJs(expression, parameters);
142+
PendingJavaScriptResult result =
143+
(PendingJavaScriptResult) invoke(Element_executeJs, element, expression, parameters);
132144
return helper.convertPendingJavaScriptResult(result);
133145
}
134146

0 commit comments

Comments
 (0)