You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2017/02/07 10:17:25 UTC
svn commit: r1781984 - in /tomcat/native/trunk/native: include/tcn_api.h
os/win32/system.c src/jnilib.c
Author: markt
Date: Tue Feb 7 10:17:25 2017
New Revision: 1781984
URL: http://svn.apache.org/viewvc?rev=1781984&view=rev
Log:
Further follow-up to r1781943
Fix crash on JVM shutdown (caused by global pool npe)
Modified:
tomcat/native/trunk/native/include/tcn_api.h
tomcat/native/trunk/native/os/win32/system.c
tomcat/native/trunk/native/src/jnilib.c
Modified: tomcat/native/trunk/native/include/tcn_api.h
URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/include/tcn_api.h?rev=1781984&r1=1781983&r2=1781984&view=diff
==============================================================================
--- tomcat/native/trunk/native/include/tcn_api.h (original)
+++ tomcat/native/trunk/native/include/tcn_api.h Tue Feb 7 10:17:25 2017
@@ -36,10 +36,14 @@
* Tomcat Native Public API
*/
-/* Return global apr pool
+/* Return global apr pool, creating it if necessary
*/
apr_pool_t *tcn_get_global_pool(void);
+/* Return global apr pool, optionally creating it if necessary
+ */
+apr_pool_t *tcn_get_global_pool_int(int);
+
/* Return global String class
*/
jclass tcn_get_string_class(void);
Modified: tomcat/native/trunk/native/os/win32/system.c
URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/os/win32/system.c?rev=1781984&r1=1781983&r2=1781984&view=diff
==============================================================================
--- tomcat/native/trunk/native/os/win32/system.c (original)
+++ tomcat/native/trunk/native/os/win32/system.c Tue Feb 7 10:17:25 2017
@@ -102,7 +102,9 @@ DllMain(
*/
case DLL_THREAD_DETACH:
#ifdef HAVE_OPENSSL
- SSL_thread_exit();
+ if (tcn_get_global_pool_int(0)) {
+ SSL_thread_exit();
+ }
#endif
break;
Modified: tomcat/native/trunk/native/src/jnilib.c
URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/src/jnilib.c?rev=1781984&r1=1781983&r2=1781984&view=diff
==============================================================================
--- tomcat/native/trunk/native/src/jnilib.c (original)
+++ tomcat/native/trunk/native/src/jnilib.c Tue Feb 7 10:17:25 2017
@@ -454,7 +454,12 @@ TCN_IMPLEMENT_CALL(jint, Library, size)(
apr_pool_t *tcn_get_global_pool()
{
- if (!tcn_global_pool) {
+ return tcn_get_global_pool_int(1);
+}
+
+apr_pool_t *tcn_get_global_pool_int(int create)
+{
+ if (!tcn_global_pool && create) {
if (apr_pool_create(&tcn_global_pool, NULL) != APR_SUCCESS) {
return NULL;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org