I'm writing Java class BigZ, an instance of which is backed by a GNU Multiple-Precision Arithmetic Library arbitrary-size integer. Some of BigZ's methods must return instances of BigZ, but I've been unable to do so. The function below, for example, causes the JVM to die.
You're not doing any error-checking at all here. Many JNI methods will register a pending exception and then return NULL on failure, so you should always check if they return 0 before proceeding. Ignoring a zero return value can easily lead to a crash on the next JNI call.
Another thing is that it looks like "thisClass" is being stored in a member variable. If that's a local reference, as returned from FindClass, then that's a big no-no. You would have to call NewGlobalRef to turn FindClass's result into a global reference before you're allowed to save it between JNI calls.