RFR: 8349206: j.u.l.Handler classes create deadlock risk via synchronized publish() method [v2]

David Beaumont duke at openjdk.org
Fri Feb 14 16:35:12 UTC 2025


On Fri, 14 Feb 2025 15:50:20 GMT, Daniel Fuchs <dfuchs at openjdk.org> wrote:

>> David Beaumont has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Reworking FileHandler so rotation occurs synchronously after the last log entry is written.
>
> src/java.logging/share/classes/java/util/logging/FileHandler.java line 193:
> 
>> 191:             out.write(b);
>> 192:             written++;
>> 193:             flushOrRotateIfFull();
> 
> I don't think that's correct. You don't want to flush and rotate in the middle of publishing a LogRecord. You want to flush and rotate either before or after - but not in the middle.

See the comment above about how the only calls to "write()" occur for a complete log entry. This is something we can control in StreamHandler (I'm happy to add a test to verify this if you want though - I'm writing a new StreamHandler test at the moment).

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/23491#discussion_r1956423950


More information about the core-libs-dev mailing list