RFR: JDK-6823527: java.util.logging.Handler has thread safety issues
Jason Mehrens
jason_mehrens at hotmail.com
Fri Aug 30 17:30:52 UTC 2013
> I'm not sure I'd want to attempt that. Modifications in logging code
> have a tendency to come back and bite you ;-(...
I understand. Maybe a future RFE. I'm happy with your changes then.
> isLoggable() is not synchronized and no longer calls synchronized
> methods since we're now using volatiles.
>
> So it can now be called by Thread A even if Thread B has locked
> the handler.
>
> Or did I miss something?
Yes and no. Place this code in the actual context it is used (Logger.log(LogRecord)) and you'll find that Thread A and B will only call publish->isLoggable not isLoggable->publish->isLoggable. It is written that way to avoid double filtering.
Jason
More information about the core-libs-dev
mailing list