Recent JNI regression

Marco Trudel mtrudel@gmx.ch
Wed Feb 7 22:05:00 GMT 2007


Tom Tromey wrote:
>>>>>> "Marco" == Marco Trudel <mtrudel@gmx.ch> writes:
> 
> Marco> Please consider the attached example.
> 
> I turned this into a JNI regression test.
> I'm checking it in.

Great! thanks...

Marco


> Tom
> 
> Index: ChangeLog
>>from  Tom Tromey  <tromey@redhat.com>
> 
> 	* testsuite/libjava.jni/init.c: New file.
> 	* testsuite/libjava.jni/init.java: New file.
> 	* testsuite/libjava.jni/init.out: New file.
> 	* testsuite/libjava.jni/init.jar: New file.
> 	* testsuite/libjava.jni/init.h: New file.
> 	* testsuite/libjava.jni/init$NativeClass.h: New file.
> 
> Index: testsuite/libjava.jni/init.c
> ===================================================================
> --- testsuite/libjava.jni/init.c	(revision 0)
> +++ testsuite/libjava.jni/init.c	(revision 0)
> @@ -0,0 +1,8 @@
> +#include <jni.h>
> +#include <init$NativeClass.h>
> +
> +JNIEXPORT void JNICALL
> +Java_init_00024NativeClass_printHello(JNIEnv *env, jclass cl)
> +{
> +	printf("hello\n");
> +}
> Index: testsuite/libjava.jni/init.h
> ===================================================================
> --- testsuite/libjava.jni/init.h	(revision 0)
> +++ testsuite/libjava.jni/init.h	(revision 0)
> @@ -0,0 +1,18 @@
> +/* DO NOT EDIT THIS FILE - it is machine generated */
> +
> +#include <jni.h>
> +
> +#ifndef __init__
> +#define __init__
> +
> +#ifdef __cplusplus
> +extern "C"
> +{
> +#endif
> +
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* __init__ */
> Index: testsuite/libjava.jni/init$NativeClass.h
> ===================================================================
> --- testsuite/libjava.jni/init$NativeClass.h	(revision 0)
> +++ testsuite/libjava.jni/init$NativeClass.h	(revision 0)
> @@ -0,0 +1,19 @@
> +/* DO NOT EDIT THIS FILE - it is machine generated */
> +
> +#include <jni.h>
> +
> +#ifndef __init_00024NativeClass__
> +#define __init_00024NativeClass__
> +
> +#ifdef __cplusplus
> +extern "C"
> +{
> +#endif
> +
> +JNIEXPORT void JNICALL Java_init_00024NativeClass_printHello (JNIEnv *env, jclass);
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* __init_00024NativeClass__ */
> Index: testsuite/libjava.jni/init.java
> ===================================================================
> --- testsuite/libjava.jni/init.java	(revision 0)
> +++ testsuite/libjava.jni/init.java	(revision 0)
> @@ -0,0 +1,26 @@
> +// Regression test for JNI and static initializers.
> +
> +public class init
> +{
> +  public static class NativeClass
> +  {
> +    static
> +    {
> +      System.out.println("static initializer 2");
> +      System.loadLibrary("init"); // if it's here, this app doesn't work
> +    }
> +
> +    public static native void printHello();
> +  }
> +
> +  static
> +  {
> +    System.out.println("static initializer 1");
> +  }
> +
> +  public static void main(String[] args)
> +  {
> +    //System.loadLibrary("test"); // if it's here, this app works
> +    NativeClass.printHello();
> +  }
> +}
> Index: testsuite/libjava.jni/init.out
> ===================================================================
> --- testsuite/libjava.jni/init.out	(revision 0)
> +++ testsuite/libjava.jni/init.out	(revision 0)
> @@ -0,0 +1,3 @@
> +static initializer 1
> +static initializer 2
> +hello
> Index: testsuite/libjava.jni/init.jar
> ===================================================================
> Cannot display: file marked as a binary type.
> svn:mime-type = application/octet-stream
> 
> Property changes on: testsuite/libjava.jni/init.jar
> ___________________________________________________________________
> Name: svn:mime-type
>    + application/octet-stream
> 



More information about the Java-patches mailing list