On Tue, 15 Jun 2021 16:00:02 GMT, Hannes Wallnöfer <hann...@openjdk.org> wrote:
>> This change fixes a performance regression caused by passing instances of >> `com.sun.tools.javac.util.Name` to a `html.markup.Text` object, where their >> content is accessed using`CharSequence` methods which are implemented very >> inefficiently. >> >> Since improving `javac.util.Name` will likely require a bit more work (see >> JDK-8268622), a safe short term solution for JDK 17 is to make sure >> instances of `Name` are converted to `String` before invoking said >> `CharSequence` methods. The main fix is to convert to `String` early in >> `Entity.escapeHtmlChars(CharSequence)` which is invoked by the `Text` >> constructor. There are a few more `.toString()` invocations added in places >> where a `Name` is appended to a `StringBuilder`, although these have less >> performance impact. > > Hannes Wallnöfer has updated the pull request incrementally with one > additional commit since the last revision: > > JDK-8268557: Update year in copyright header This is OK as a short-term fix. I hope we can revert it when the underlying problem in `Name`is fixed. ------------- PR: https://git.openjdk.java.net/jdk17/pull/42