RFR: JDK-8269921 TextFlow: listeners on bounds can throw NPE while computing text bounds [v5]

Andy Goryachev angorya at openjdk.org
Wed Oct 25 22:20:51 UTC 2023


On Wed, 25 Oct 2023 22:16:59 GMT, Andy Goryachev <angorya at openjdk.org> wrote:

>> Florian Kirmaier has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:
>> 
>>  - Merge remote-tracking branch 'origjfx/master' into JDK-8269921-textflow-bug
>>  - JDK-8269921
>>    Reverted the change to the layout, so we can fix the main-bug without further discussions.
>>  - Merge remote-tracking branch 'origjfx/master' into JDK-8269921-textflow-bug
>>  - JDK-8269921
>>    Added a copyright header
>>  - JDK-8269921
>>    Fixing a crash related to Text and TextFlow with bounds listeners
>
> modules/javafx.graphics/src/main/java/javafx/scene/text/Text.java line 359:
> 
>> 357:         if (spanBoundsInvalid) {
>> 358:             GlyphList[] runs = getRuns();
>> 359:             if (runs != null && runs.length != 0) {
> 
> on a surface, this check looks ok.
> 
> however, in getRuns(), Text:388 we have
> 
>             /* List of run is initialized when the TextFlow layout the children */
>             getParent().layout();
> 
> meaning that `textRuns` did not initialize even though the `getParent().layout();`  was invoked - why?

I mean, are we missing another step?

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

PR Review Comment: https://git.openjdk.org/jfx/pull/564#discussion_r1372378133


More information about the openjfx-dev mailing list