On Thu, 6 Feb 2025 12:07:57 GMT, David Beaumont <d...@openjdk.org> wrote:
> 8349206: j.u.l.Handler classes create deadlock risk via synchronized > publish() method. > > 1. Remove synchronization of calls to publish() in Handlers in > java.util.logging package. > 2. Add explanatory comments to various affected methods. > 3. Add a test to ensure deadlocks no longer occur. > > Note that this change does not address issue in MemoryHandler (see > JDK-8349208). src/java.logging/share/classes/java/util/logging/StreamHandler.java line 210: > 208: if (!doneHeader) { > 209: writer.write(getFormatter().getHead(this)); > 210: doneHeader = true; Should getHead and or getTail also not be called while holding lock? I format a single record in: https://eclipse-ee4j.github.io/angus-mail/docs/api/org.eclipse.angus.mail/org/eclipse/angus/mail/util/logging/CollectorFormatter.html#getTail(java.util.logging.Handler) ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/23491#discussion_r1955610861