Hi Daniel, Thanks for taking this on. Looks good.
This might be a new issue altogether but, if record.getMessage returns null a NPE can be generated during 'catalog.getString' (per RB.handleGetObject contract) or 'java.text.MessageFormat.format' (undocumented) It is handled by the catch clause so it is harmless in terms of correctness. The most common form of this abuse I've seen in the wild is 'logger.log(SEVERE, null, (Throwable) ioe); So if it not worth explicitly checking for null maybe we should add a comment explaining the intent that NPE could be generated and is trapped. For sure having tests for null message with and without a resource bundle would be a good idea. Thanks, Jason From: core-libs-dev <core-libs-dev-boun...@openjdk.java.net> on behalf of Daniel Fuchs <daniel.fu...@oracle.com> Sent: Wednesday, June 8, 2016 8:46 AM To: core-libs-dev Subject: RFR: 8153666: Optimize Formatter.formatMessage Hi, Please find below a patch for a small optimization in Formatter.formatMessage. This patch also removed the synchronized keyword which was there for historical reasons - but which has become needless. More background available at: https://bugs.openjdk.java.net/browse/JDK-8153666 (thanks Martin!) and http://stackoverflow.com/questions/36433146/why-is-the-formatmessage-method-in-java-util-logging-formatter-synchronized (thanks Jason!) bug: 8153666: Optimize Formatter.formatMessage https://bugs.openjdk.java.net/browse/JDK-8153666 patch: http://cr.openjdk.java.net/~dfuchs/webrev_8153666/webrev.00 best regards, and thanks to all who provided suggestions and archeological background! -- daniel