This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a commit to branch fix_deadlock in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git
commit 4fc2e7e0066dfb22d5d314b626abefcc99cc05d7 Author: Stephen Webb <[email protected]> AuthorDate: Thu Aug 10 15:43:15 2023 +1000 Prevent a deadlock when LOG4CXX_CHAR=utf-8 and LOG4CXX_CHARSET=EBCDIC --- src/main/cpp/charsetdecoder.cpp | 3 +-- src/main/cpp/charsetencoder.cpp | 3 +-- src/main/cpp/exception.cpp | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/cpp/charsetdecoder.cpp b/src/main/cpp/charsetdecoder.cpp index b400e41a..26a099df 100644 --- a/src/main/cpp/charsetdecoder.cpp +++ b/src/main/cpp/charsetdecoder.cpp @@ -466,8 +466,7 @@ class LocaleCharsetDecoder : public CharsetDecoder try { - LogString e; - Transcoder::decode(encoding, e); + LOG4CXX_DECODE_CHAR(e, encoding); decoder = getDecoder(e); } catch (IllegalArgumentException&) diff --git a/src/main/cpp/charsetencoder.cpp b/src/main/cpp/charsetencoder.cpp index ee5f5ff7..010a6ec1 100644 --- a/src/main/cpp/charsetencoder.cpp +++ b/src/main/cpp/charsetencoder.cpp @@ -494,8 +494,7 @@ class LocaleCharsetEncoder : public CharsetEncoder else if (encoding != enc) { encoding = enc; - LogString ename; - Transcoder::decode(encoding, ename); + LOG4CXX_DECODE_CHAR(ename, encoding); try { diff --git a/src/main/cpp/exception.cpp b/src/main/cpp/exception.cpp index 2adf3708..5daed641 100644 --- a/src/main/cpp/exception.cpp +++ b/src/main/cpp/exception.cpp @@ -29,8 +29,7 @@ using namespace log4cxx::helpers; Exception::Exception(const LogString& msg1) { - std::string m; - Transcoder::encode(msg1, m); + LOG4CXX_ENCODE_CHAR(m, msg1); size_t len = m.size(); if (len > MSG_SIZE)
