You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2012/11/08 20:47:58 UTC
svn commit: r1407241 - /incubator/mesos/trunk/src/java/jni/convert.cpp
Author: benh
Date: Thu Nov 8 19:47:57 2012
New Revision: 1407241
URL: http://svn.apache.org/viewvc?rev=1407241&view=rev
Log:
Changed compatibility checking between Mesos JAR and native library
versions to only fail when major versions differ.
From: Vinod Kone <vi...@gmail.com>
Review: https://reviews.apache.org/r/7971
Modified:
incubator/mesos/trunk/src/java/jni/convert.cpp
Modified: incubator/mesos/trunk/src/java/jni/convert.cpp
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/java/jni/convert.cpp?rev=1407241&r1=1407240&r2=1407241&view=diff
==============================================================================
--- incubator/mesos/trunk/src/java/jni/convert.cpp (original)
+++ incubator/mesos/trunk/src/java/jni/convert.cpp Thu Nov 8 19:47:57 2012
@@ -146,13 +146,18 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM
jobject jVERSION = env->GetStaticObjectField(
clazz, env->GetStaticFieldID(clazz, "VERSION", "Ljava/lang/String;"));
- const string& expected = construct<string>(env, jVERSION);
+ const string& jarVersion = construct<string>(env, jVERSION);
- if (MESOS_VERSION != expected) {
+ const string jarMajorVersion = strings::split(jarVersion, ".")[0];
+ const string nativeMajorVersion = strings::split(MESOS_VERSION, ".")[0];
+
+ if (jarMajorVersion != nativeMajorVersion) {
env->DeleteWeakGlobalRef(mesosClassLoader);
mesosClassLoader = NULL;
const string& error =
- "Java expecting version " + expected + ", found version " + MESOS_VERSION;
+ "Mesos JAR version " + jarVersion +
+ " is not backwards compatible with Mesos native library version " +
+ MESOS_VERSION;
clazz = env->FindClass("java/lang/UnsatisfiedLinkError");
env->ThrowNew(clazz, error.c_str());
return JNI_ERR;