in java/com_spotify_voyager_jni_Index.cpp [950:973]
void Java_com_spotify_voyager_jni_Index_nativeLoadFromInputStream(
JNIEnv *env, jobject self, jobject jInputStream) {
try {
auto inputStream = std::make_shared<JavaInputStream>(env, jInputStream);
std::unique_ptr<voyager::Metadata::V1> metadata =
voyager::Metadata::loadFromStream(inputStream);
if (metadata) {
setHandle<Index>(
env, self,
loadTypedIndexFromMetadata(std::move(metadata), inputStream)
.release());
} else {
throw std::domain_error(
"Provided index file has no metadata and no index parameters were "
"specified. Must either provide an index with metadata or specify "
"storageDataType, spaceType, and numDimensions.");
}
} catch (std::exception const &e) {
if (!env->ExceptionCheck()) {
env->ThrowNew(env->FindClass("java/lang/RuntimeException"), e.what());
}
}
}