JNIでよく起きそうな(というか自分が経験した)エラーについてメモ。
普通にJava内ならClassCastExceptionになりそうな代入も、JNIからの返り値にはチェックが入らないのには驚き。Javaはけっこうガチガチだから安全だと思っていたけど、JNIがからむ部分についてはそれほどでもないんだなぁ。
あと、JNIの関数を呼び出した際に例外が発生するとその後のほとんどのJNI関数は何も処理されないのでエラーチェックを省いても意外と大丈夫かと思っていたら、jclassがNULLの場合はJavaVM自体が落ちる。
やっぱエラーチェックはちゃんとすべきですな。
※コメント投稿者のブログIDはブログ作成者のみに通知されます