This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push: new 81e0b20062 Fix deprecation warning after switch to Java 17+ 81e0b20062 is described below commit 81e0b200622b0e722b120839789ba5df5d867719 Author: Mark Thomas <ma...@apache.org> AuthorDate: Thu Jan 19 10:01:33 2023 +0000 Fix deprecation warning after switch to Java 17+ This also avoids the "Using int as thread ID in LogRecord" issue --- java/org/apache/juli/OneLineFormatter.java | 46 +++++++++++------------------- 1 file changed, 17 insertions(+), 29 deletions(-) diff --git a/java/org/apache/juli/OneLineFormatter.java b/java/org/apache/juli/OneLineFormatter.java index 6828a3ab89..5550b67778 100644 --- a/java/org/apache/juli/OneLineFormatter.java +++ b/java/org/apache/juli/OneLineFormatter.java @@ -39,7 +39,6 @@ import java.util.logging.LogRecord; */ public class OneLineFormatter extends Formatter { - private static final String UNKNOWN_THREAD_NAME = "Unknown thread with ID "; private static final Object threadMxBeanLock = new Object(); private static volatile ThreadMXBean threadMxBean = null; private static final int THREAD_NAME_CACHE_SIZE = 10000; @@ -137,7 +136,7 @@ public class OneLineFormatter extends Formatter { if (threadName != null && threadName.startsWith(AsyncFileHandler.THREAD_PREFIX)) { // If using the async handler can't get the thread name from the // current thread. - sb.append(getThreadName(record.getThreadID())); + sb.append(getThreadName(record.getLongThreadID())); } else { sb.append(threadName); } @@ -213,47 +212,36 @@ public class OneLineFormatter extends Formatter { /** * LogRecord has threadID but no thread name. - * LogRecord uses an int for thread ID but thread IDs are longs. - * If the real thread ID > (Integer.MAXVALUE / 2) LogRecord uses it's own - * ID in an effort to avoid clashes due to overflow. - * <p> - * Words fail me to describe what I think of the design decision to use an - * int in LogRecord for a long value and the resulting mess that follows. */ - private static String getThreadName(int logRecordThreadId) { - Map<Integer,String> cache = threadNameCache.get(); - String result = cache.get(Integer.valueOf(logRecordThreadId)); + private static String getThreadName(long logRecordThreadId) { + Map<Long,String> cache = threadNameCache.get(); + String result = cache.get(Long.valueOf(logRecordThreadId)); if (result != null) { return result; } - if (logRecordThreadId > Integer.MAX_VALUE / 2) { - result = UNKNOWN_THREAD_NAME + logRecordThreadId; - } else { - // Double checked locking OK as threadMxBean is volatile - if (threadMxBean == null) { - synchronized (threadMxBeanLock) { - if (threadMxBean == null) { - threadMxBean = ManagementFactory.getThreadMXBean(); - } + // Double checked locking OK as threadMxBean is volatile + if (threadMxBean == null) { + synchronized (threadMxBeanLock) { + if (threadMxBean == null) { + threadMxBean = ManagementFactory.getThreadMXBean(); } } - ThreadInfo threadInfo = - threadMxBean.getThreadInfo(logRecordThreadId); - if (threadInfo == null) { - return Long.toString(logRecordThreadId); - } - result = threadInfo.getThreadName(); } + ThreadInfo threadInfo = threadMxBean.getThreadInfo(logRecordThreadId); + if (threadInfo == null) { + return Long.toString(logRecordThreadId); + } + result = threadInfo.getThreadName(); - cache.put(Integer.valueOf(logRecordThreadId), result); + cache.put(Long.valueOf(logRecordThreadId), result); return result; } - private static class ThreadNameCache extends LinkedHashMap<Integer,String> { + private static class ThreadNameCache extends LinkedHashMap<Long,String> { private static final long serialVersionUID = 1L; @@ -264,7 +252,7 @@ public class OneLineFormatter extends Formatter { } @Override - protected boolean removeEldestEntry(Entry<Integer, String> eldest) { + protected boolean removeEldestEntry(Entry<Long, String> eldest) { return (size() > cacheSize); } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org