Skip to content

Commit d9ae0db

Browse files
committed
8256746: gc/CriticalNativeArgs.java fails without -XX:-CriticalJNINatives
Reviewed-by: kbarrett, coleenp, rkennke
1 parent aac5c2a commit d9ae0db

File tree

2 files changed

+44
-10
lines changed

2 files changed

+44
-10
lines changed

test/hotspot/jtreg/gc/CriticalNativeArgs.java

Lines changed: 42 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,12 @@
3232
* @requires os.arch =="x86_64" | os.arch == "amd64" | os.arch=="x86" | os.arch=="i386"
3333
* @requires vm.gc.Epsilon
3434
* @summary test argument unpacking nmethod wrapper of critical native method
35-
* @run main/othervm/native -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -Xcomp -Xmx256M -XX:+CriticalJNINatives gc.CriticalNativeArgs
35+
* @run main/othervm/native -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -Xcomp -Xmx256M
36+
* -XX:-CriticalJNINatives
37+
* gc.CriticalNativeArgs
38+
* @run main/othervm/native -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -Xcomp -Xmx256M
39+
* -XX:+CriticalJNINatives
40+
* gc.CriticalNativeArgs
3641
*/
3742

3843
/*
@@ -42,14 +47,38 @@
4247
* @requires os.arch =="x86_64" | os.arch == "amd64" | os.arch=="x86" | os.arch=="i386"
4348
* @requires vm.gc.Shenandoah
4449
* @summary test argument unpacking nmethod wrapper of critical native method
45-
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive -XX:+ShenandoahDegeneratedGC -Xcomp -Xmx512M -XX:+CriticalJNINatives gc.CriticalNativeArgs
46-
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive -XX:-ShenandoahDegeneratedGC -Xcomp -Xmx512M -XX:+CriticalJNINatives gc.CriticalNativeArgs
4750
*
48-
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive -Xcomp -Xmx512M -XX:+CriticalJNINatives gc.CriticalNativeArgs
51+
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xcomp -Xmx512M
52+
* -XX:+UseShenandoahGC
53+
* -XX:-CriticalJNINatives
54+
* gc.CriticalNativeArgs
55+
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xcomp -Xmx512M
56+
* -XX:+UseShenandoahGC
57+
* -XX:+CriticalJNINatives
58+
* gc.CriticalNativeArgs
4959
*
50-
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -Xcomp -Xmx256M -XX:+CriticalJNINatives gc.CriticalNativeArgs
51-
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+UnlockExperimentalVMOptions -XX:ShenandoahGCMode=iu -Xcomp -Xmx512M -XX:+CriticalJNINatives gc.CriticalNativeArgs
52-
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+UnlockExperimentalVMOptions -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive -Xcomp -Xmx512M -XX:+CriticalJNINatives gc.CriticalNativeArgs
60+
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xcomp -Xmx512M
61+
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive -XX:+ShenandoahDegeneratedGC
62+
* -XX:+CriticalJNINatives
63+
* gc.CriticalNativeArgs
64+
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xcomp -Xmx512M
65+
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive -XX:-ShenandoahDegeneratedGC
66+
* -XX:+CriticalJNINatives
67+
* gc.CriticalNativeArgs
68+
*
69+
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xcomp -Xmx512M
70+
* -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive
71+
* -XX:+CriticalJNINatives
72+
* gc.CriticalNativeArgs
73+
*
74+
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xcomp -Xmx512M
75+
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu
76+
* -XX:+CriticalJNINatives
77+
* gc.CriticalNativeArgs
78+
* @run main/othervm/native -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xcomp -Xmx512M
79+
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive
80+
* -XX:+CriticalJNINatives
81+
* gc.CriticalNativeArgs
5382
*/
5483

5584
/*
@@ -58,7 +87,12 @@
5887
* @library /
5988
* @requires os.arch =="x86_64" | os.arch == "amd64" | os.arch=="x86" | os.arch=="i386" | os.arch=="ppc64" | os.arch=="ppc64le" | os.arch=="s390x"
6089
* @summary test argument unpacking nmethod wrapper of critical native method
61-
* @run main/othervm/native -Xcomp -Xmx512M -XX:+CriticalJNINatives gc.CriticalNativeArgs
90+
* @run main/othervm/native -Xcomp -Xmx512M
91+
* -XX:-CriticalJNINatives
92+
* gc.CriticalNativeArgs
93+
* @run main/othervm/native -Xcomp -Xmx512M
94+
* -XX:+CriticalJNINatives
95+
* gc.CriticalNativeArgs
6296
*/
6397
public class CriticalNativeArgs {
6498
public static void main(String[] args) {

test/hotspot/jtreg/gc/libCriticalNative.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,10 +120,10 @@ JNIEXPORT jboolean JNICALL JavaCritical_gc_CriticalNative_isNull
120120

121121
JNIEXPORT jboolean JNICALL Java_gc_CriticalNative_isNull
122122
(JNIEnv *env, jclass jclazz, jintArray a) {
123-
jboolean is_null;
123+
if (a == NULL) return JNI_TRUE;
124124
jsize len = (*env)->GetArrayLength(env, a);
125125
jint* arr = (jint*)(*env)->GetPrimitiveArrayCritical(env, a, 0);
126-
is_null = (arr == NULL) && (len == 0);
126+
jboolean is_null = (arr == NULL) && (len == 0);
127127
(*env)->ReleasePrimitiveArrayCritical(env, a, arr, 0);
128128
return is_null;
129129
}

0 commit comments

Comments
 (0)