Вся документация по JNI — сплошное пиздобольство. Смотрим описание функции GetArrayLength Что сказано про кидаемые исключения? Ничего. Ну не кидает. Ок, смотрим в код. Смотрим в код. Hot Spot JVM кинет IllegalArgumentException, Cacao JVM — NPE. Вот кому после этого верить?
айбиэмовцы — мудаки. в их jre MessageDigest.clone() не делает deep clone. В результате, при попытке посчитать md5 от разных данных в разных потоках приведёт к порче и той и другой чексуммы