This PR fixes the StringIndexOutOfBoundsException, that occurs when an empty 
text is set to a Labeled, that previously contained a mnemonic.

The reason for the error is that the ``updateDisplayedText(double, double)``, 
which also updates ``containsMnemonic`` flag, was not invoked if the text was 
empty. The value of this flag was still ``true`` but the index of the mnemonic 
character inside ``MnemonicInfo`` had already been updated to -1. This led to 
the StringIndexOutOfBoundsException in the line 611.

I fixed it by moving the call to ``updateDisplayedText(double, double)`` 
outside the if-clause, so that it is always called when the text is being laid 
out. This should not affect performance because the method already checks 
whether recalculation is required. If not, it exits quickly.

---------
- [X] I confirm that I make this contribution in accordance with the [OpenJDK 
Interim AI Policy](https://openjdk.org/legal/ai).

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

Commit messages:
 - Fix StringIndexOutOfBoundsException

Changes: https://git.openjdk.org/jfx/pull/2253/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=2253&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8389970
  Stats: 60 lines in 2 files changed: 59 ins; 1 del; 0 mod
  Patch: https://git.openjdk.org/jfx/pull/2253.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/2253/head:pull/2253

PR: https://git.openjdk.org/jfx/pull/2253

Reply via email to