[Proj] New proposal of JNI bindings for Proj.4

Martin Desruisseaux martin.desruisseaux at geomatys.fr
Mon Aug 29 11:04:13 EST 2011


Le 29/08/11 17:41, Eric Miller a écrit :
> But, what is the correct behavior if a pointer argument is null or an array 
> size is negative? Call abort()? Would that still crash the JVM? 

Calling exit() has been reported to stop the JVM (I didn't tested myself). I 
presume that it is the same for abort().

Inside a JNI function, if the arguments were provided by the user who invoked 
the function from the Java side, the correct behavior is to throw a Java 
exception (NullPointerException or IndexOutOfBoundsException). JNI functions 
have a JNIEnv argument which allows interaction with the JVM. So we can throw an 
exception from JNI code as below:

         jclass c = (*env)->FindClass(env, "java/lang/NullPointerException");
         if (c) (*env)->ThrowNew(env, c, "/Put some error message here./");
         return; // We need to exit from the C/C++ function.


Of course this apply only to JNI functions. The "normal" C library uses other 
mechanisms (typically no check - or if they check, an error code returned as an 
int).

     Martin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/proj/attachments/20110829/4e6256a8/attachment.htm 


More information about the Proj mailing list