mturk 2004/11/11 11:00:57 Modified: jk/native/common jk_jni_worker.c Log: Add new trace macros and clean up some log messages. Revision Changes Path 1.27 +116 -76 jakarta-tomcat-connectors/jk/native/common/jk_jni_worker.c Index: jk_jni_worker.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_jni_worker.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- jk_jni_worker.c 8 Oct 2004 07:50:39 -0000 1.26 +++ jk_jni_worker.c 11 Nov 2004 19:00:56 -0000 1.27 @@ -253,16 +253,17 @@ jni_endpoint_t *p; jint rc; - jk_log(l, JK_LOG_DEBUG, "Into service\n"); + JK_TRACE_ENTER(l); if (!e || !e->endpoint_private || !s) { - jk_log(l, JK_LOG_EMERG, - "In service, assert failed - invalid parameters\n"); + JK_LOG_NULL_PARAMS(l); + JK_TRACE_EXIT(l); return JK_FALSE; } p = e->endpoint_private; if (!is_recoverable_error) { + JK_TRACE_EXIT(l); return JK_FALSE; } @@ -272,6 +273,7 @@ jk_log(l, JK_LOG_EMERG, "Attach failed\n"); /* Is it recoverable ?? */ *is_recoverable_error = JK_TRUE; + JK_TRACE_EXIT(l); return JK_FALSE; } p->attached = JK_TRUE; @@ -301,11 +303,13 @@ /* [V] Righ now JNIEndpoint::service() only returns 1 or 0 */ if (rc) { - jk_log(l, JK_LOG_DEBUG, "In service, Tomcat returned OK, done\n"); + jk_log(l, JK_LOG_DEBUG, "Tomcat returned OK, done\n"); + JK_TRACE_EXIT(l); return JK_TRUE; } else { - jk_log(l, JK_LOG_ERROR, "In service, Tomcat FAILED!\n"); + jk_log(l, JK_LOG_ERROR, "Tomcat FAILED!\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } } @@ -314,10 +318,10 @@ { jni_endpoint_t *p; - jk_log(l, JK_LOG_DEBUG, "Into done\n"); + JK_TRACE_ENTER(l); if (!e || !*e || !(*e)->endpoint_private) { - jk_log(l, JK_LOG_EMERG, - "In done, assert failed - invalid parameters\n"); + JK_LOG_NULL_PARAMS(l); + JK_TRACE_EXIT(l); return JK_FALSE; } @@ -329,7 +333,7 @@ free(p); *e = NULL; - jk_log(l, JK_LOG_DEBUG, "Done ok\n"); + JK_TRACE_EXIT(l); return JK_TRUE; } @@ -343,18 +347,19 @@ char *str_config = NULL; JNIEnv *env; - jk_log(l, JK_LOG_DEBUG, "Into validate\n"); + JK_TRACE_ENTER(l); if (!pThis || !pThis->worker_private) { - jk_log(l, JK_LOG_EMERG, - "In validate, assert failed - invalid parameters\n"); + JK_LOG_NULL_PARAMS(l); + JK_TRACE_EXIT(l); return JK_FALSE; } p = pThis->worker_private; if (p->was_verified) { - jk_log(l, JK_LOG_DEBUG, "validate, been here before, done\n"); + jk_log(l, JK_LOG_DEBUG, "been here before, done\n"); + JK_TRACE_EXIT(l); return JK_TRUE; } @@ -371,7 +376,8 @@ } if (!p->tomcat_classpath) { - jk_log(l, JK_LOG_EMERG, "Fail-> no classpath\n"); + jk_log(l, JK_LOG_EMERG, "no classpath\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } @@ -384,7 +390,8 @@ } if (!p->jvm_dll_path || !jk_file_exists(p->jvm_dll_path)) { - jk_log(l, JK_LOG_EMERG, "Fail-> no jvm_dll_path\n"); + jk_log(l, JK_LOG_EMERG, "no jvm_dll_path\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } @@ -419,36 +426,39 @@ } if (!load_jvm_dll(p, l)) { - jk_log(l, JK_LOG_EMERG, "Fail-> can't load jvm dll\n"); + jk_log(l, JK_LOG_EMERG, "can't load jvm dll\n"); /* [V] no detach needed here */ + JK_TRACE_EXIT(l); return JK_FALSE; } if (!open_jvm(p, &env, l)) { - jk_log(l, JK_LOG_EMERG, "Fail-> can't open jvm\n"); + jk_log(l, JK_LOG_EMERG, "can't open jvm\n"); /* [V] no detach needed here */ + JK_TRACE_EXIT(l); return JK_FALSE; } if (!get_bridge_object(p, env, l)) { - jk_log(l, JK_LOG_EMERG, "Fail-> can't get bridge object\n"); + jk_log(l, JK_LOG_EMERG, "can't get bridge object\n"); /* [V] the detach here may segfault on 1.1 JVM... */ detach_from_jvm(p, l); + JK_TRACE_EXIT(l); return JK_FALSE; } if (!get_method_ids(p, env, l)) { - jk_log(l, JK_LOG_EMERG, "Fail-> can't get method ids\n"); + jk_log(l, JK_LOG_EMERG, "can't get method ids\n"); /* [V] the detach here may segfault on 1.1 JVM... */ detach_from_jvm(p, l); + JK_TRACE_EXIT(l); return JK_FALSE; } p->was_verified = JK_TRUE; p->tmp_env = env; - jk_log(l, JK_LOG_DEBUG, "Done validate\n"); - + JK_TRACE_EXIT(l); return JK_TRUE; } @@ -459,18 +469,19 @@ jni_worker_t *p; JNIEnv *env; - jk_log(l, JK_LOG_DEBUG, "Into init\n"); + JK_TRACE_ENTER(l); if (!pThis || !pThis->worker_private) { - jk_log(l, JK_LOG_EMERG, - "In init, assert failed - invalid parameters\n"); + JK_LOG_NULL_PARAMS(l); + JK_TRACE_EXIT(l); return JK_FALSE; } p = pThis->worker_private; if (p->was_initialized) { - jk_log(l, JK_LOG_DEBUG, "init, done (been here!)\n"); + jk_log(l, JK_LOG_DEBUG, "done (been here!)\n"); + JK_TRACE_EXIT(l); return JK_TRUE; } @@ -478,7 +489,8 @@ !p->jk_java_bridge_object || !p->jk_service_method || !p->jk_startup_method || !p->jk_shutdown_method) { - jk_log(l, JK_LOG_EMERG, "Fail-> worker not set completely\n"); + jk_log(l, JK_LOG_EMERG, "worker not set completely\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } @@ -511,7 +523,7 @@ } jk_log(l, JK_LOG_DEBUG, - "In init, calling Tomcat to intialize itself...\n"); + "calling Tomcat to intialize itself...\n"); rc = (*env)->CallIntMethod(env, p->jk_java_bridge_object, p->jk_startup_method, cmd_line, stdout_name, stderr_name); @@ -520,17 +532,20 @@ if (rc) { p->was_initialized = JK_TRUE; - jk_log(l, JK_LOG_DEBUG, "In init, Tomcat initialized OK, done\n"); + jk_log(l, JK_LOG_DEBUG, "Tomcat initialized OK, done\n"); + JK_TRACE_EXIT(l); return JK_TRUE; } else { - jk_log(l, JK_LOG_EMERG, "Fail-> could not initialize Tomcat\n"); + jk_log(l, JK_LOG_EMERG, "could not initialize Tomcat\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } } else { jk_log(l, JK_LOG_ERROR, "In init, FIXME: init didn't gen env from validate!\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } } @@ -541,11 +556,11 @@ /* [V] This slow, needs replacement */ jni_endpoint_t *p = (jni_endpoint_t *) malloc(sizeof(jni_endpoint_t)); - jk_log(l, JK_LOG_DEBUG, "Into get_endpoint\n"); + JK_TRACE_ENTER(l); if (!pThis || !pThis->worker_private || !pend) { - jk_log(l, JK_LOG_EMERG, - "In get_endpoint, assert failed - invalid parameters\n"); + JK_LOG_NULL_PARAMS(l); + JK_TRACE_EXIT(l); return JK_FALSE; } @@ -558,11 +573,13 @@ p->endpoint.done = done; *pend = &p->endpoint; + JK_TRACE_EXIT(l); return JK_TRUE; } else { jk_log(l, JK_LOG_ERROR, - "In get_endpoint, could not allocate endpoint\n"); + "could not allocate endpoint\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } } @@ -572,28 +589,30 @@ jni_worker_t *p; JNIEnv *env; - jk_log(l, JK_LOG_DEBUG, "Into destroy\n"); + JK_TRACE_ENTER(l); if (!pThis || !*pThis || !(*pThis)->worker_private) { - jk_log(l, JK_LOG_EMERG, - "In destroy, assert failed - invalid parameters\n"); + JK_LOG_NULL_PARAMS(l); + JK_TRACE_EXIT(l); return JK_FALSE; } p = (*pThis)->worker_private; if (!p->jvm) { - jk_log(l, JK_LOG_DEBUG, "In destroy, JVM not intantiated\n"); + jk_log(l, JK_LOG_DEBUG, "JVM not intantiated\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } if (!p->jk_java_bridge_object || !p->jk_shutdown_method) { - jk_log(l, JK_LOG_DEBUG, "In destroy, Tomcat not intantiated\n"); + jk_log(l, JK_LOG_DEBUG, "Tomcat not intantiated\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } if ((env = attach_to_jvm(p, l))) { - jk_log(l, JK_LOG_DEBUG, "In destroy, shutting down Tomcat...\n"); + jk_log(l, JK_LOG_DEBUG, "shutting down Tomcat...\n"); (*env)->CallVoidMethod(env, p->jk_java_bridge_object, p->jk_shutdown_method); @@ -603,8 +622,9 @@ jk_close_pool(&p->p); free(p); - jk_log(l, JK_LOG_DEBUG, "Done destroy\n"); + jk_log(l, JK_LOG_DEBUG, "destroyed\n"); + JK_TRACE_EXIT(l); return JK_TRUE; } @@ -613,18 +633,19 @@ { jni_worker_t *private_data; - jk_log(l, JK_LOG_DEBUG, "Into jni_worker_factory\n"); + JK_TRACE_ENTER(l); if (!name || !w) { - jk_log(l, JK_LOG_EMERG, - "In jni_worker_factory, assert failed - invalid parameters\n"); + JK_LOG_NULL_PARAMS(l); + JK_TRACE_EXIT(l); return JK_FALSE; } if (the_singleton_jni_worker) { jk_log(l, JK_LOG_DEBUG, - "In jni_worker_factory, instance already created\n"); + "instance already created\n"); *w = the_singleton_jni_worker; + JK_TRACE_EXIT(l); return JK_TRUE; } @@ -632,7 +653,8 @@ if (!private_data) { jk_log(l, JK_LOG_ERROR, - "In jni_worker_factory, memory allocation error\n"); + "memory allocation error\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } @@ -643,9 +665,10 @@ if (!private_data->name) { jk_log(l, JK_LOG_ERROR, - "In jni_worker_factory, memory allocation error\n"); + "memory allocation error\n"); jk_close_pool(&private_data->p); free(private_data); + JK_TRACE_EXIT(l); return JK_FALSE; } @@ -681,7 +704,7 @@ *w = &private_data->worker; the_singleton_jni_worker = &private_data->worker; - jk_log(l, JK_LOG_DEBUG, "Done jni_worker_factory\n"); + JK_TRACE_EXIT(l); return JK_TRUE; } @@ -739,7 +762,7 @@ jni_get_created_java_vms = &JNI_GetCreatedJavaVMs; #else void *handle; - jk_log(l, JK_LOG_DEBUG, "Into load_jvm_dll, load %s\n", p->jvm_dll_path); + jk_log(l, JK_LOG_DEBUG, "loading JVM %s\n", p->jvm_dll_path); handle = dlopen(p->jvm_dll_path, RTLD_NOW | RTLD_GLOBAL); @@ -797,15 +820,16 @@ int err; *env = NULL; - jk_log(l, JK_LOG_DEBUG, "Into open_jvm1\n"); + JK_TRACE_ENTER(l); vm_args.version = JNI_VERSION_1_1; if (0 != jni_get_default_java_vm_init_args(&vm_args)) { - jk_log(l, JK_LOG_EMERG, "Fail-> can't get default vm init args\n"); + jk_log(l, JK_LOG_EMERG, "can't get default vm init args\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } - jk_log(l, JK_LOG_DEBUG, "In open_jvm_dll, got default jvm args\n"); + jk_log(l, JK_LOG_DEBUG, "got default jvm args\n"); if (vm_args.classpath) { unsigned len = strlen(vm_args.classpath) + @@ -819,7 +843,8 @@ } else { jk_log(l, JK_LOG_EMERG, - "Fail-> allocation error for classpath\n"); + "allocation error for classpath\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } } @@ -841,13 +866,15 @@ jk_log(l, JK_LOG_DEBUG, "In open_jvm1, about to create JVM...\n"); if ((err = jni_create_java_vm(&(p->jvm), &penv, &vm_args)) != 0) { jk_log(l, JK_LOG_EMERG, - "Fail-> could not create JVM, code: %d \n", err); + "could not create JVM, code: %d \n", err); + JK_TRACE_EXIT(l); return JK_FALSE; } - jk_log(l, JK_LOG_DEBUG, "In open_jvm1, JVM created, done\n"); + jk_log(l, JK_LOG_DEBUG, "JVM created, done\n"); *env = penv; + JK_TRACE_EXIT(l); return JK_TRUE; } @@ -857,19 +884,21 @@ JNIEnv *env = NULL; JDK1_1InitArgs vm_args; - jk_log(l, JK_LOG_DEBUG, "Into detect_jvm_version\n"); + JK_TRACE_ENTER(l); /* [V] Idea: ask for 1.2. If the JVM is 1.1 it will return 1.1 instead */ /* Note: asking for 1.1 won't work, 'cause 1.2 JVMs will return 1.1 */ vm_args.version = JNI_VERSION_1_2; if (0 != jni_get_default_java_vm_init_args(&vm_args)) { - jk_log(l, JK_LOG_EMERG, "Fail-> can't get default vm init args\n"); + jk_log(l, JK_LOG_EMERG, "can't get default vm init args\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } jk_log(l, JK_LOG_DEBUG, - "In detect_jvm_version, found: %X, done\n", vm_args.version); + "found version: %X, done\n", vm_args.version); + JK_TRACE_EXIT(l); return vm_args.version; } @@ -887,7 +916,7 @@ } else { jk_log(l, JK_LOG_EMERG, - "Fail-> build_opt_str allocation error for %s\n", opt_name); + "allocation error for %s\n", opt_name); return NULL; } } @@ -906,7 +935,7 @@ } else { jk_log(l, JK_LOG_EMERG, - "Fail-> build_opt_int allocation error for %s\n", opt_name); + "allocation error for %s\n", opt_name); return NULL; } } @@ -921,7 +950,7 @@ *env = NULL; - jk_log(l, JK_LOG_DEBUG, "Into open_jvm2\n"); + JK_TRACE_ENTER(l); vm_args.version = JNI_VERSION_1_2; vm_args.options = options; @@ -930,7 +959,7 @@ /* No conversion for ASCII based systems (what about BS2000 ?) */ if (p->tomcat_classpath) { - jk_log(l, JK_LOG_DEBUG, "In open_jvm2, setting classpath to %s\n", + jk_log(l, JK_LOG_DEBUG, "setting classpath to %s\n", p->tomcat_classpath); tmp = build_opt_str(&p->p, "-Djava.class.path=", p->tomcat_classpath, @@ -940,7 +969,7 @@ } if (p->tomcat_mx) { - jk_log(l, JK_LOG_DEBUG, "In open_jvm2, setting max heap to %d\n", + jk_log(l, JK_LOG_DEBUG, "setting max heap to %d\n", p->tomcat_mx); tmp = build_opt_int(&p->p, "-Xmx", p->tomcat_mx, l); null_check(tmp); @@ -948,7 +977,7 @@ } if (p->tomcat_ms) { - jk_log(l, JK_LOG_DEBUG, "In open_jvm2, setting start heap to %d\n", + jk_log(l, JK_LOG_DEBUG, "setting start heap to %d\n", p->tomcat_ms); tmp = build_opt_int(&p->p, "-Xms", p->tomcat_ms, l); null_check(tmp); @@ -958,7 +987,7 @@ if (p->sysprops) { int i = 0; while (p->sysprops[i]) { - jk_log(l, JK_LOG_DEBUG, "In open_jvm2, setting %s\n", + jk_log(l, JK_LOG_DEBUG, "setting %s\n", p->sysprops[i]); tmp = build_opt_str(&p->p, "-D", p->sysprops[i], l); null_check(tmp); @@ -971,7 +1000,7 @@ int i = 0; while (p->java2opts[i]) { - jk_log(l, JK_LOG_DEBUG, "In open_jvm2, using option: %s\n", + jk_log(l, JK_LOG_DEBUG, "using option: %s\n", p->java2opts[i]); /* Pass it "as is" */ options[optn++].optionString = @@ -983,16 +1012,16 @@ if (p->java2lax) { jk_log(l, JK_LOG_DEBUG, - "In open_jvm2, the JVM will ignore unknown options\n"); + "the JVM will ignore unknown options\n"); vm_args.ignoreUnrecognized = JNI_TRUE; } else { jk_log(l, JK_LOG_DEBUG, - "In open_jvm2, the JVM will FAIL if it finds unknown options\n"); + "the JVM will FAIL if it finds unknown options\n"); vm_args.ignoreUnrecognized = JNI_FALSE; } - jk_log(l, JK_LOG_DEBUG, "In open_jvm2, about to create JVM...\n"); + jk_log(l, JK_LOG_DEBUG, "about to create JVM...\n"); err = jni_create_java_vm(&(p->jvm), &penv, &vm_args); @@ -1016,12 +1045,14 @@ if (err != 0) { jk_log(l, JK_LOG_EMERG, "Fail-> could not create JVM, code: %d \n", err); + JK_TRACE_EXIT(l); return JK_FALSE; } - jk_log(l, JK_LOG_DEBUG, "In open_jvm2, JVM created, done\n"); *env = penv; + jk_log(l, JK_LOG_DEBUG, "JVM created\n"); + JK_TRACE_EXIT(l); return JK_TRUE; } #endif @@ -1033,7 +1064,7 @@ jmethodID constructor_method_id; - jk_log(l, JK_LOG_DEBUG, "Into get_bridge_object\n"); + JK_TRACE_ENTER(l); switch (p->bridge_type) { case TC32_BRIDGE_TYPE: @@ -1049,6 +1080,7 @@ case TC50_BRIDGE_TYPE: jk_log(l, JK_LOG_EMERG, "Bridge type %d not supported\n", p->bridge_type); + JK_TRACE_EXIT(l); return JK_FALSE; } @@ -1061,6 +1093,7 @@ if (!p->jk_java_bridge_class) { jk_log(l, JK_LOG_EMERG, "Can't find class %s\n", btype); + JK_TRACE_EXIT(l); return JK_FALSE; } jk_log(l, JK_LOG_DEBUG, @@ -1072,6 +1105,7 @@ if (!constructor_method_id) { p->jk_java_bridge_class = (jclass) NULL; jk_log(l, JK_LOG_EMERG, "Can't find constructor\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } @@ -1081,6 +1115,7 @@ if (!p->jk_java_bridge_object) { p->jk_java_bridge_class = (jclass) NULL; jk_log(l, JK_LOG_EMERG, "Can't create new bridge object\n"); + JK_TRACE_EXIT(l); return JK_FALSE; } @@ -1090,10 +1125,11 @@ jk_log(l, JK_LOG_EMERG, "Can't create global ref to bridge object\n"); p->jk_java_bridge_class = (jclass) NULL; p->jk_java_bridge_object = (jobject) NULL; + JK_TRACE_EXIT(l); return JK_FALSE; } - jk_log(l, JK_LOG_DEBUG, "In get_bridge_object, bridge built, done\n"); + JK_TRACE_EXIT(l); return JK_TRUE; } @@ -1142,7 +1178,7 @@ JNIEnv *rc = NULL; /* [V] This message is important. If there are signal mask issues, * * the JVM usually hangs when a new thread tries to attach to it */ - jk_log(l, JK_LOG_DEBUG, "Into attach_to_jvm\n"); + JK_TRACE_ENTER(l); #if defined LINUX && defined APACHE2_SIGHACK linux_signal_hack(); @@ -1154,10 +1190,12 @@ #endif &rc, NULL)) { jk_log(l, JK_LOG_DEBUG, "In attach_to_jvm, attached ok\n"); + JK_TRACE_EXIT(l); return rc; } jk_log(l, JK_LOG_ERROR, "In attach_to_jvm, cannot attach thread to JVM.\n"); + JK_TRACE_EXIT(l); return NULL; } @@ -1184,16 +1222,18 @@ */ static void detach_from_jvm(jni_worker_t * p, jk_logger_t *l) { + JK_TRACE_ENTER(l); if (!p->jvm || !(*(p->jvm))) { jk_log(l, JK_LOG_ERROR, - "In detach_from_jvm, cannot detach from NULL JVM.\n"); + "cannot detach from NULL JVM.\n"); } if (0 == (*(p->jvm))->DetachCurrentThread(p->jvm)) { - jk_log(l, JK_LOG_DEBUG, "In detach_from_jvm, detached ok\n"); + jk_log(l, JK_LOG_DEBUG, "detached ok\n"); } else { jk_log(l, JK_LOG_ERROR, - "In detach_from_jvm, cannot detach from JVM.\n"); + "cannot detach from JVM.\n"); } + JK_TRACE_EXIT(l); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]