From c7fc97ad85993956a5e76c2ea69dbd90b34360ac Mon Sep 17 00:00:00 2001 From: Marek Gradzki Date: Mon, 16 Oct 2017 12:33:12 +0200 Subject: jvpp: stop plugin intialization on first mismatch Java bindings use get_message_id from jvpp-common to detect if messages known at compile time are avaliable at runtime. In case of missing entry, Java exception is propagated via JNI using (*env)->ThrowNew. But this function does not end code execution so, in order to prevent unexpected behaviour (e.g. calling vl_msg_api_set_handlers with id == 0), get_message_id caller should do it manually. Change-Id: I2edb5013fd3658dcdd77a867b5cdf62e559ee071 Signed-off-by: Marek Gradzki --- src/vpp-api/java/jvpp-core/jvpp_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/vpp-api/java/jvpp-core') diff --git a/src/vpp-api/java/jvpp-core/jvpp_core.c b/src/vpp-api/java/jvpp-core/jvpp_core.c index e57c62a3e9f..b12f63af16f 100644 --- a/src/vpp-api/java/jvpp-core/jvpp_core.c +++ b/src/vpp-api/java/jvpp-core/jvpp_core.c @@ -55,9 +55,9 @@ JNIEXPORT void JNICALL Java_io_fd_vpp_jvpp_core_JVppCoreImpl_init0 plugin_main->callbackObject = (*env)->NewGlobalRef(env, callback); plugin_main->callbackClass = (jclass)(*env)->NewGlobalRef(env, (*env)->GetObjectClass(env, callback)); - // verify API has not changed since jar generation + // verify API has not changed since jar generation (exit on mismatch) #define _(N) \ - get_message_id(env, #N); \ + if (get_message_id(env, #N) == 0) return; foreach_supported_api_message; #undef _ -- cgit 1.2.3-korg