You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2015/09/30 03:31:30 UTC
activemq-artemis git commit:
https://issues.apache.org/jira/browse/ARTEMIS-237 Fixing IBM JDK failures
Repository: activemq-artemis
Updated Branches:
refs/heads/master dc6fe94bd -> 18e41963b
https://issues.apache.org/jira/browse/ARTEMIS-237 Fixing IBM JDK failures
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/18e41963
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/18e41963
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/18e41963
Branch: refs/heads/master
Commit: 18e41963b61a5ef6dbcdb150e27c07c062deaa66
Parents: dc6fe94
Author: Clebert Suconic <cl...@apache.org>
Authored: Tue Sep 29 17:37:04 2015 -0400
Committer: Clebert Suconic <cl...@apache.org>
Committed: Tue Sep 29 21:29:02 2015 -0400
----------------------------------------------------------------------
artemis-native/bin/libartemis-native-32.so | Bin 22260 -> 22260 bytes
artemis-native/bin/libartemis-native-64.so | Bin 21442 -> 23983 bytes
...che_activemq_artemis_jlibaio_LibaioContext.c | 25 +++++++------------
.../activemq/artemis/jlibaio/LibaioContext.java | 2 +-
4 files changed, 10 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/18e41963/artemis-native/bin/libartemis-native-32.so
----------------------------------------------------------------------
diff --git a/artemis-native/bin/libartemis-native-32.so b/artemis-native/bin/libartemis-native-32.so
index df4b560..15c3d66 100755
Binary files a/artemis-native/bin/libartemis-native-32.so and b/artemis-native/bin/libartemis-native-32.so differ
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/18e41963/artemis-native/bin/libartemis-native-64.so
----------------------------------------------------------------------
diff --git a/artemis-native/bin/libartemis-native-64.so b/artemis-native/bin/libartemis-native-64.so
index 1e24db3..e32603b 100755
Binary files a/artemis-native/bin/libartemis-native-64.so and b/artemis-native/bin/libartemis-native-64.so differ
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/18e41963/artemis-native/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.c
----------------------------------------------------------------------
diff --git a/artemis-native/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.c b/artemis-native/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.c
index 4776966..3beb1bf 100644
--- a/artemis-native/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.c
+++ b/artemis-native/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.c
@@ -112,6 +112,15 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) {
if ((*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_6) != JNI_OK) {
return JNI_ERR;
} else {
+ //
+ // Accordingly to previous experiences we must hold Global Refs on Classes
+ // And
+ //
+ // Accordingly to IBM recommendations here:
+ // We don't need to hold a global reference on methods:
+ // http://www.ibm.com/developerworks/java/library/j-jni/index.html#notc
+ // Which actually caused core dumps
+
jclass localRuntimeExceptionClass = (*env)->FindClass(env, "java/lang/RuntimeException");
if (localRuntimeExceptionClass == NULL) {
// pending exception...
@@ -147,13 +156,11 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) {
if (errorMethod == NULL) {
return JNI_ERR;
}
- errorMethod = (jmethodID)(*env)->NewGlobalRef(env, (jobject)(errorMethod));
doneMethod = (*env)->GetMethodID(env, submitClass, "done", "()V");
if (doneMethod == NULL) {
return JNI_ERR;
}
- doneMethod = (jmethodID)(*env)->NewGlobalRef(env, (jobject)(doneMethod));
libaioContextClass = (*env)->FindClass(env, "org/apache/activemq/artemis/jlibaio/LibaioContext");
if (libaioContextClass == NULL) {
@@ -165,7 +172,6 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) {
if (libaioContextDone == NULL) {
return JNI_ERR;
}
- libaioContextDone = (jmethodID)(*env)->NewGlobalRef(env, (jobject)libaioContextDone);
return JNI_VERSION_1_6;
}
@@ -185,15 +191,6 @@ void JNI_OnUnload(JavaVM* vm, void* reserved) {
(*env)->DeleteGlobalRef(env, ioExceptionClass);
}
- // Deleting global refs so their classes can be GCed
- if (errorMethod != NULL) {
- (*env)->DeleteGlobalRef(env, (jobject)errorMethod);
- }
-
- if (doneMethod != NULL) {
- (*env)->DeleteGlobalRef(env, (jobject)doneMethod);
- }
-
if (submitClass != NULL) {
(*env)->DeleteGlobalRef(env, (jobject)submitClass);
}
@@ -201,10 +198,6 @@ void JNI_OnUnload(JavaVM* vm, void* reserved) {
if (libaioContextClass != NULL) {
(*env)->DeleteGlobalRef(env, (jobject)libaioContextClass);
}
-
- if (libaioContextDone != NULL) {
- (*env)->DeleteGlobalRef(env, (jobject)libaioContextDone);
- }
}
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/18e41963/artemis-native/src/main/java/org/apache/activemq/artemis/jlibaio/LibaioContext.java
----------------------------------------------------------------------
diff --git a/artemis-native/src/main/java/org/apache/activemq/artemis/jlibaio/LibaioContext.java b/artemis-native/src/main/java/org/apache/activemq/artemis/jlibaio/LibaioContext.java
index 5ada655..62bd98f 100644
--- a/artemis-native/src/main/java/org/apache/activemq/artemis/jlibaio/LibaioContext.java
+++ b/artemis-native/src/main/java/org/apache/activemq/artemis/jlibaio/LibaioContext.java
@@ -49,7 +49,7 @@ public class LibaioContext<Callback extends SubmitInfo> implements Closeable {
* <br>
* Or else the native module won't be loaded because of version mismatches
*/
- private static final int EXPECTED_NATIVE_VERSION = 1;
+ private static final int EXPECTED_NATIVE_VERSION = 2;
private static boolean loaded = false;