Openssl 为什么CertificateVeriferTask_类没有在netty tcnative中卸载
当我阅读netty tcnative的源代码时,我发现“CertificateVeriferTask_类”已加载到 方法 「netty\u内部\u tcnative\u SSLContext\u JNI\u OnLoad」Openssl 为什么CertificateVeriferTask_类没有在netty tcnative中卸载,openssl,netty,boringssl,Openssl,Netty,Boringssl,当我阅读netty tcnative的源代码时,我发现“CertificateVeriferTask_类”已加载到 方法 「netty\u内部\u tcnative\u SSLContext\u JNI\u OnLoad」 jint netty_internal_tcnative_SSLContext_JNI_OnLoad(JNIEnv* env, const char* packagePrefix) { ..... NETTY_JNI_UTIL_PREPEND(packageP
jint netty_internal_tcnative_SSLContext_JNI_OnLoad(JNIEnv* env, const char* packagePrefix) {
.....
NETTY_JNI_UTIL_PREPEND(packagePrefix, "io/netty/internal/tcnative/CertificateVerifierTask", name, error);
NETTY_JNI_UTIL_LOAD_CLASS(env, certificateVerifierTask_class, name, error);
NETTY_JNI_UTIL_PREPEND(packagePrefix, "io/netty/internal/tcnative/CertificateVerifier;)V", name, error);
NETTY_JNI_UTIL_PREPEND("(J[[BLjava/lang/String;L", name, combinedName, error);
TCN_REASSIGN(name, combinedName);
NETTY_JNI_UTIL_GET_METHOD(env, certificateVerifierTask_class, certificateVerifierTask_init, "<init>", name, error);
.....
}
卸载过程没有必要吗?这实际上是一个bug。。。非常感谢我刚修好
void netty_internal_tcnative_SSLContext_JNI_OnUnLoad(JNIEnv* env, const char* packagePrefix) {
NETTY_JNI_UTIL_UNLOAD_CLASS(env, sslTask_class);
NETTY_JNI_UTIL_UNLOAD_CLASS(env, certificateCallbackTask_class);
NETTY_JNI_UTIL_UNLOAD_CLASS(env, sslPrivateKeyMethodTask_class);
NETTY_JNI_UTIL_UNLOAD_CLASS(env, sslPrivateKeyMethodSignTask_class);
NETTY_JNI_UTIL_UNLOAD_CLASS(env, sslPrivateKeyMethodDecryptTask_class);
netty_jni_util_unregister_natives(env, packagePrefix, SSLCONTEXT_CLASSNAME);
}