Author: mturk Date: Wed May 9 06:26:10 2007 New Revision: 536514 URL: http://svn.apache.org/viewvc?view=rev&rev=536514 Log: In case log level is less then INFO, print on stdout This will print thread dump on redirected stdout file if launched from service.
Modified: jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/src/javajni.c Modified: jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/src/javajni.c URL: http://svn.apache.org/viewvc/jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/src/javajni.c?view=diff&rev=536514&r1=536513&r2=536514 ============================================================================== --- jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/src/javajni.c (original) +++ jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/src/javajni.c Wed May 9 06:26:10 2007 @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + #include "apxwin.h" #include "private.h" @@ -21,7 +21,7 @@ #ifndef JNI_VERSION_1_2 #error ------------------------------------------------------- -#error JAVA 1.1 IS NO LONGER SUPPORTED +#error JAVA 1.1 IS NO LONGER SUPPORTED #error ------------------------------------------------------- #endif @@ -31,7 +31,7 @@ #define JNI_VERSION_DEFAULT JNI_VERSION_1_2 #endif -/* Standard jvm.dll prototypes +/* Standard jvm.dll prototypes * since only single jvm can exist per process * make those global */ @@ -77,7 +77,7 @@ #endif #define JNI_LOCAL_UNREF(obj) \ - (*(lpJava->lpEnv))->DeleteLocalRef(lpJava->lpEnv, obj) + (*(lpJava->lpEnv))->DeleteLocalRef(lpJava->lpEnv, obj) #define JNICALL_0(fName) \ ((*(lpJava->lpEnv))->##fName(lpJava->lpEnv)) @@ -100,15 +100,15 @@ jobject jObject; jarray jArgs; } APXJAVASTDCLAZZ, *LPAPXJAVASTDCLAZZ; - + typedef struct APXJAVAVM { DWORD dwOptions; APXJAVASTDCLAZZ clString; APXJAVASTDCLAZZ clWorker; - jint iVersion; + jint iVersion; jsize iVmCount; - JNIEnv *lpEnv; - JavaVM *lpJvm; + JNIEnv *lpEnv; + JavaVM *lpJvm; /* JVM worker thread info */ HANDLE hWorkerThread; DWORD iWorkerThread; @@ -122,7 +122,7 @@ static __inline BOOL __apxJvmAttach(LPAPXJAVAVM lpJava) { jint _iStatus = (*(lpJava->lpJvm))->GetEnv(lpJava->lpJvm, - (void **)&(lpJava->lpEnv), + (void **)&(lpJava->lpEnv), lpJava->iVersion); if (_iStatus != JNI_OK) { if (_iStatus == JNI_EDETACHED) @@ -150,7 +150,7 @@ static BOOL __apxLoadJvmDll(LPCWSTR szJvmDllPath) { - UINT errMode; + UINT errMode; LPWSTR dllJvmPath = (LPWSTR)szJvmDllPath; if (!IS_INVALID_HANDLE(_st_sys_jvmDllHandle)) @@ -159,25 +159,25 @@ if (!dllJvmPath || *dllJvmPath == L'\0') dllJvmPath = apxGetJavaSoftRuntimeLib(NULL); if (!dllJvmPath) - return FALSE; + return FALSE; /* Suppress the not found system popup message */ - errMode = SetErrorMode(SEM_FAILCRITICALERRORS); - - _st_sys_jvmDllHandle = LoadLibraryExW(dllJvmPath, NULL, 0); + errMode = SetErrorMode(SEM_FAILCRITICALERRORS); + + _st_sys_jvmDllHandle = LoadLibraryExW(dllJvmPath, NULL, 0); /* This shuldn't happen, but try to search in %PATH% */ if (IS_INVALID_HANDLE(_st_sys_jvmDllHandle)) _st_sys_jvmDllHandle = LoadLibraryExW(dllJvmPath, NULL, - LOAD_WITH_ALTERED_SEARCH_PATH); + LOAD_WITH_ALTERED_SEARCH_PATH); /* Restore the error mode signalization */ - SetErrorMode(errMode); + SetErrorMode(errMode); if (IS_INVALID_HANDLE(_st_sys_jvmDllHandle)) { apxLogWrite(APXLOG_MARK_SYSERR); return FALSE; } - DYNLOAD_FPTR_LOAD(JNI_GetDefaultJavaVMInitArgs, _st_sys_jvmDllHandle); - DYNLOAD_FPTR_LOAD(JNI_CreateJavaVM, _st_sys_jvmDllHandle); + DYNLOAD_FPTR_LOAD(JNI_GetDefaultJavaVMInitArgs, _st_sys_jvmDllHandle); + DYNLOAD_FPTR_LOAD(JNI_CreateJavaVM, _st_sys_jvmDllHandle); DYNLOAD_FPTR_LOAD(JNI_GetCreatedJavaVMs, _st_sys_jvmDllHandle); - + if (!DYNLOAD_FPTR(JNI_GetDefaultJavaVMInitArgs) || !DYNLOAD_FPTR(JNI_CreateJavaVM) || !DYNLOAD_FPTR(JNI_GetCreatedJavaVMs)) { @@ -202,7 +202,7 @@ case WM_CLOSE: if (lpJava->lpJvm) { if (!IS_INVALID_HANDLE(lpJava->hWorkerThread)) { - if (GetExitCodeThread(lpJava->hWorkerThread, &dwJvmRet) && + if (GetExitCodeThread(lpJava->hWorkerThread, &dwJvmRet) && dwJvmRet == STILL_ACTIVE) { TerminateThread(lpJava->hWorkerThread, 5); } @@ -217,7 +217,7 @@ #if 0 /* Do not destroy if we terminated the worker thread */ if (dwJvmRet != STILL_ACTIVE) - (*(lpJava->lpJvm))->DestroyJavaVM(lpJava->lpJvm); + (*(lpJava->lpJvm))->DestroyJavaVM(lpJava->lpJvm); #endif /* Unload JVM dll */ FreeLibrary(_st_sys_jvmDllHandle); @@ -239,15 +239,15 @@ APXHANDLE hJava; LPAPXJAVAVM lpJava; jsize iVmCount; - JavaVM *lpJvm = NULL; + JavaVM *lpJvm = NULL; if (!__apxLoadJvmDll(szJvmDllPath)) - return NULL; + return NULL; /* */ if (DYNLOAD_FPTR(JNI_GetCreatedJavaVMs)(&lpJvm, 1, &iVmCount) != JNI_OK) { return NULL; - } + } if (iVmCount && !lpJvm) return NULL; @@ -271,7 +271,7 @@ DWORD i, n = 0, l = 0; char *buff; LPSTR p; - + if (lpString) { l = __apxGetMultiSzLengthA(lpString, &n); } @@ -293,7 +293,7 @@ p++; p += qr; } - + return n; } @@ -303,10 +303,11 @@ jint rv; CHAR sBuf[1024+16]; rv = wvsprintfA(sBuf, format, args); - apxLogWrite(APXLOG_MARK_INFO "%s", sBuf); + if (apxLogWrite(APXLOG_MARK_INFO "%s", sBuf) == 0) + fputs(sBuf, stdout); return rv; } - + /* ANSI version only */ BOOL @@ -315,7 +316,7 @@ DWORD dwSs) { LPAPXJAVAVM lpJava; - JavaVMInitArgs vmArgs; + JavaVMInitArgs vmArgs; JavaVMOption *lpJvmOptions; DWORD i, nOptions, sOptions = 2; BOOL rv = FALSE; @@ -323,7 +324,7 @@ return FALSE; lpJava = APXHANDLE_DATA(hJava); - + if (lpJava->iVmCount) { if (!lpJava->lpEnv && !__apxJvmAttach(lpJava)) { if (lpJava->iVersion == JNI_VERSION_1_2) { @@ -334,7 +335,7 @@ lpJava->iVersion = JNI_VERSION_1_2; if (!__apxJvmAttach(lpJava)) { apxLogWrite(APXLOG_MARK_ERROR "Unable To Attach the JVM"); - return FALSE; + return FALSE; } } lpJava->iVersion = JNICALL_0(GetVersion); @@ -392,19 +393,19 @@ (void **)&(lpJava->lpEnv), &vmArgs) != JNI_OK) { apxLogWrite(APXLOG_MARK_ERROR "CreateJavaVM Failed"); - rv = FALSE; + rv = FALSE; } else rv = TRUE; apxFree(szCp); apxFree(lpJvmOptions); - } + } /* Load standard classes */ if (rv) { jclass jClazz = JNICALL_1(FindClass, JAVA_CLASSSTRING); if (!jClazz) { apxLogWrite(APXLOG_MARK_ERROR "FindClass " JAVA_CLASSSTRING " failed"); - goto cleanup; + goto cleanup; } lpJava->clString.jClazz = JNICALL_1(NewGlobalRef, jClazz); JNI_LOCAL_UNREF(jClazz); @@ -434,13 +435,13 @@ lpJava = APXHANDLE_DATA(hJava); if (!__apxJvmAttach(lpJava)) return FALSE; - + /* Find the class */ jClazz = JNICALL_1(FindClass, szClassName); if (!jClazz) { JVM_EXCEPTION_CLEAR(lpJava); apxLogWrite(APXLOG_MARK_ERROR "FindClass %s failed", szClassName); - return FALSE; + return FALSE; } /* Make the class global so that worker thread can attach */ lpJava->clWorker.jClazz = JNICALL_1(NewGlobalRef, jClazz); @@ -449,11 +450,11 @@ if (szMethodName) lpJava->clWorker.jMethod = JNICALL_3(GetStaticMethodID, lpJava->clWorker.jClazz, - szMethodName, "([Ljava/lang/String;)V"); + szMethodName, "([Ljava/lang/String;)V"); else lpJava->clWorker.jMethod = JNICALL_3(GetStaticMethodID, lpJava->clWorker.jClazz, - "main", "([Ljava/lang/String;)V"); + "main", "([Ljava/lang/String;)V"); if (!lpJava->clWorker.jMethod) { JVM_EXCEPTION_CLEAR(lpJava); apxLogWrite(APXLOG_MARK_ERROR "Static method 'void main(String[])' in Class %s not found", szClassName); @@ -475,7 +476,7 @@ } -/* Main java application worker thread +/* Main java application worker thread * It will launch Java main and wait until * it finishes. */ @@ -520,10 +521,10 @@ if (hJava->dwType != APXHANDLE_TYPE_JVM) return FALSE; lpJava = APXHANDLE_DATA(hJava); - + lpJava->hWorkerThread = CreateThread(NULL, 0, __apxJavaWorkerThread, hJava, CREATE_SUSPENDED, - &lpJava->iWorkerThread); + &lpJava->iWorkerThread); if (IS_INVALID_HANDLE(lpJava->hWorkerThread)) { apxLogWrite(APXLOG_MARK_SYSERR); return FALSE; @@ -543,14 +544,14 @@ if (hJava->dwType != APXHANDLE_TYPE_JVM) return FALSE; lpJava = APXHANDLE_DATA(hJava); - + if (!lpJava->dwWorkerStatus && lpJava->hWorkerThread) return WAIT_OBJECT_0; rv = WaitForSingleObject(lpJava->hWorkerThread, dwMilliseconds); if (rv == WAIT_TIMEOUT && bKill) { __apxJavaJniCallback(hJava, WM_CLOSE, 0, 0); } - + return rv; } @@ -568,14 +569,14 @@ lpJava = APXHANDLE_DATA(hJava); if (!__apxJvmAttach(lpJava)) return NULL; - + clazz = JNICALL_1(FindClass, szClassName); if (clazz == NULL || (JVM_EXCEPTION_CHECK(lpJava))) { JVM_EXCEPTION_CLEAR(lpJava); apxLogWrite(APXLOG_MARK_ERROR "Could not FindClass %s", szClassName); return NULL; } - + ccont = JNICALL_3(GetMethodID, clazz, "<init>", szSignature); if (ccont == NULL || (JVM_EXCEPTION_CHECK(lpJava))) { JVM_EXCEPTION_CLEAR(lpJava); @@ -601,7 +602,7 @@ { LPVOID rv; va_list args; - + va_start(args, szSignature); rv = apxJavaCreateClassV(hJava, szClassName, szSignature, args); va_end(args); @@ -618,7 +619,7 @@ if (hJava->dwType != APXHANDLE_TYPE_JVM) return NULL; lpJava = APXHANDLE_DATA(hJava); - + str = JNICALL_1(NewStringUTF, szString); if (str == NULL || (JVM_EXCEPTION_CHECK(lpJava))) { JVM_EXCEPTION_CLEAR(lpJava); @@ -639,7 +640,7 @@ if (hJava->dwType != APXHANDLE_TYPE_JVM) return NULL; lpJava = APXHANDLE_DATA(hJava); - + str = JNICALL_2(NewString, szString, lstrlenW(szString)); if (str == NULL || (JVM_EXCEPTION_CHECK(lpJava))) { JVM_EXCEPTION_CLEAR(lpJava); @@ -663,7 +664,7 @@ if (hJava->dwType != APXHANDLE_TYPE_JVM) return rv; lpJava = APXHANDLE_DATA(hJava); - + while (*s && *s != ')') ++s; if (*s != ')') { @@ -709,7 +710,7 @@ break; case 'D': rv.d = JNICALL_3(CallStaticDoubleMethodV, lpClass, method, lpArgs); - break; + break; default: apxLogWrite(APXLOG_MARK_ERROR "Invalid signature %s for method %s", szSignature, szMethodName); @@ -726,7 +727,7 @@ { jvalue rv; va_list args; - + va_start(args, szSignature); rv = apxJavaCallStaticMethodV(hJava, lpClass, szMethodName, szSignature, args); va_end(args); @@ -735,7 +736,7 @@ } /* Call the Java: - * System.setOut(new PrintStream(new FileOutputStream(filename))); + * System.setOut(new PrintStream(new FileOutputStream(filename))); */ BOOL apxJavaSetOut(APXHANDLE hJava, BOOL setErrorOrOut, LPCWSTR szFilename) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]