From 6e17f9b15f9e4d98ab05f676bd67ec3dff8e25f2 Mon Sep 17 00:00:00 2001 From: kaddepalli Date: Thu, 25 Apr 2019 15:19:09 +0530 Subject: [PATCH] 8219914: Change the environment variable for Java Access Bridge logging to have a directory. Reviewed-by: prr --- .../native/sun/bridge/AccessBridgeDebug.cpp | 42 +++++++------------ .../native/sun/bridge/AccessBridgeDebug.h | 4 +- .../native/sun/bridge/JavaAccessBridge.cpp | 4 +- .../native/sun/bridge/WinAccessBridge.cpp | 4 +- 4 files changed, 22 insertions(+), 32 deletions(-) diff --git a/src/windows/native/sun/bridge/AccessBridgeDebug.cpp b/src/windows/native/sun/bridge/AccessBridgeDebug.cpp index 10b336555..9640ba2a1 100644 --- a/src/windows/native/sun/bridge/AccessBridgeDebug.cpp +++ b/src/windows/native/sun/bridge/AccessBridgeDebug.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,34 +40,24 @@ extern "C" { static FILE* logFP = nullptr; -void initializeFileLogger(char * suffix) { - auto var = "JAVA_ACCESSBRIDGE_LOGFILE"; +void initializeFileLogger(char * fileName) { + auto var = "JAVA_ACCESSBRIDGE_LOGDIR"; const auto envfilePath = getenv(var); - if (envfilePath != nullptr) { - auto ext = const_cast(strrchr(envfilePath, '.')); - auto filePath = static_cast(nullptr); - auto len = strlen(envfilePath); - auto suffixlen = suffix != nullptr ? strlen(suffix) : (decltype(strlen(nullptr)))0; - - if (ext == nullptr) { - filePath = new char[len + suffixlen + 5]; - memset(filePath, 0, len + suffixlen + 5); - memcpy(filePath, envfilePath, len); - memcpy(filePath + len, suffix, suffixlen); - memcpy(filePath + len + suffixlen, ".log", 4); - } else { - auto extLen = strlen(ext); - - filePath = new char[len + suffixlen + 1]; - memset(filePath, 0, len + suffixlen + 1); - memcpy(filePath, envfilePath, len - extLen); - memcpy(filePath + len - extLen, suffix, suffixlen); - memcpy(filePath + len + suffixlen - extLen, ext, extLen); - } + if (envfilePath != nullptr && fileName != nullptr) { + auto envFilePathLength = strlen(envfilePath); + auto fileNameLength = strlen(fileName); + auto filePathSize = envFilePathLength + 1 + fileNameLength + 5; //1 for "/", 5 for ".log" and 0; + auto filePath = new char[filePathSize]; + memset(filePath, 0, filePathSize*sizeof(char)); + memcpy(filePath, envfilePath, envFilePathLength*sizeof(char)); + filePath[envFilePathLength] = '/'; + memcpy(filePath + envFilePathLength + 1, fileName, fileNameLength*sizeof(char)); + memcpy(filePath + envFilePathLength + 1 + fileNameLength, ".log", 4*sizeof(char)); logFP = fopen(filePath, "w"); if (logFP == nullptr) { - PrintDebugString("couldnot open file %s", filePath); + printf("\n%s\n", filePath); + PrintDebugString("Could not open file %s", filePath); } delete [] filePath; @@ -114,7 +104,7 @@ auto getTimeStamp() -> long long { #endif #endif if (logFP) { - fprintf(logFP, "[%lldu] ", getTimeStamp()); + fprintf(logFP, "[%llu] ", getTimeStamp()); va_list args; va_start(args, msg); vfprintf(logFP, msg, args); diff --git a/src/windows/native/sun/bridge/AccessBridgeDebug.h b/src/windows/native/sun/bridge/AccessBridgeDebug.h index 4264a6405..217a529de 100644 --- a/src/windows/native/sun/bridge/AccessBridgeDebug.h +++ b/src/windows/native/sun/bridge/AccessBridgeDebug.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -53,7 +53,7 @@ extern "C" { void PrintJavaDebugString(char *msg, ...); void wPrintJavaDebugString(wchar_t *msg, ...); void wPrintDebugString(wchar_t *msg, ...); - void initializeFileLogger(char * suffix); + void initializeFileLogger(char * fileName); void finalizeFileLogger(); #ifdef __cplusplus diff --git a/src/windows/native/sun/bridge/JavaAccessBridge.cpp b/src/windows/native/sun/bridge/JavaAccessBridge.cpp index f95b878a6..a68830100 100644 --- a/src/windows/native/sun/bridge/JavaAccessBridge.cpp +++ b/src/windows/native/sun/bridge/JavaAccessBridge.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -167,7 +167,7 @@ extern "C" { JavaAccessBridge::JavaAccessBridge(HINSTANCE hInstance) { windowsInstance = hInstance; ATs = (AccessBridgeATInstance *) 0; - initializeFileLogger("_java_access_bridge"); + initializeFileLogger("java_access_bridge"); initBroadcastMessageIDs(); // get the unique to us broadcast msg. IDs } diff --git a/src/windows/native/sun/bridge/WinAccessBridge.cpp b/src/windows/native/sun/bridge/WinAccessBridge.cpp index 9a1c8612e..d5c0b887f 100644 --- a/src/windows/native/sun/bridge/WinAccessBridge.cpp +++ b/src/windows/native/sun/bridge/WinAccessBridge.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -130,7 +130,7 @@ extern "C" { switch (fdwReason) { case DLL_PROCESS_ATTACH: // A Windows executable loaded us - initializeFileLogger("_windows_access_bridge"); + initializeFileLogger("windows_access_bridge"); PrintDebugString("[INFO]: DLL_PROCESS_ATTACH"); theWindowsAccessBridge = new WinAccessBridge(hinstDll); break; -- GitLab