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 <mgradzki@cisco.com>
diff --git a/src/vpp-api/java/jvpp-nat/jvpp_nat.c b/src/vpp-api/java/jvpp-nat/jvpp_nat.c
index 85217f0..56c74d2 100644
--- a/src/vpp-api/java/jvpp-nat/jvpp_nat.c
+++ b/src/vpp-api/java/jvpp-nat/jvpp_nat.c
@@ -54,7 +54,7 @@
// verify API has not changed since jar generation
#define _(N) \
- get_message_id(env, #N);
+ if (get_message_id(env, #N) == 0) return;
foreach_supported_api_message;
#undef _