[External] : Re: MacAccessible substring bug?
Cormac Redmond
credmond at certak.com
Fri Oct 17 21:21:25 UTC 2025
Hi Andy,
I know, and I share your frustration at not being able to reproduce it.
In this case, there are already two reproducible bugs *related *to this
class in question, when VoiceOver is enabled (which comes preinstalled with
macOS, not third-party software):
- JDK-8345536 (2019) <https://bugs.openjdk.org/browse/JDK-8345536>
- JDK-8235989 (2024) <https://bugs.openjdk.org/browse/JDK-8235989>
VoiceOver has many settings, which may be related as to why I cannot
reproduce the exact issue described in JDK-8345536 (the
StringIndexOutOfBoundsException), which seems likely the same one my user
encountered. However, I *can* reproduce the second one (JDK-8235989) in my
application, only when VoiceOver is enabled.
Both issues are already known, logged, and reproducible.
In my case, a global uncaught exception handler catches these and displays
them to the user, which is not an uncommon pattern for a GUI (if there's an
error, we don't want it swallowed and unnoticed, especially when we don't
know what it affects). I think these are worth fixing.
It’s also worth noting that I have hundreds of unique macOS users each day,
which further suggests that the original problem may be related to less
common OS configurations or accessibility software such as VoiceOver, as
otherwise I'd get more bug reports on these...
Kind regards,
Cormac
On Fri, 17 Oct 2025 at 17:25, Andy Goryachev <andy.goryachev at oracle.com>
wrote:
> The goal here is to find a reproducible scenario, preferably without
> installing any additional software. The details are important here -
> that's why I asked for a screenshot since it might help us find details
> that are often omitted by the users (understandably). You mentioned you
> cannot reproduce the issue - without the steps to reproduce we can't even
> file a meaningful JBS ticket (I mean we can, but it will be promptly closed
> as "cannot reproduce" methinks).
>
> If you can find out the reproducible scenario, and we can reproduce it
> here, I'll create a JBS ticket.
>
> Thank you
> -andy
>
>
> *From: *Cormac Redmond <credmond at certak.com>
> *Date: *Friday, October 17, 2025 at 08:38
> *To: *Andy Goryachev <andy.goryachev at oracle.com>
> *Cc: *OpenJFX <openjfx-dev at openjdk.org>
> *Subject: *[External] : Re: MacAccessible substring bug?
>
> Hi,
>
> They did follow-up to say it's happening on "every textinput", so I assume
> they mean every character they enter. They tried software restarts
> including their Mac Mini M2, no help..
>
> I requested a screenshot, but the user has seemingly disappeared (it's a
> first-time user of free software so there's no incentive for them to stick
> around).
>
> If anyone has a Mac Mini M2 or similar (with a clue about its
> accessibility software, which might be playing a part in this), I can link
> you to my software; it's straightforward to run, to see if reproducible?
>
>
>
>
> Kind Regards,
> Cormac
>
> On Wed, 15 Oct 2025 at 21:02, Andy Goryachev <andy.goryachev at oracle.com>
> wrote:
>
> I wonder if menu's mnemonic parsing is involved. Would it be possible to
> capture a screenshot of your application when this happens?
>
> -andy
>
> *From: *openjfx-dev <openjfx-dev-retn at openjdk.org> on behalf of Cormac
> Redmond <credmond at certak.com>
> *Date: *Wednesday, October 15, 2025 at 12:52
> *To: *OpenJFX <openjfx-dev at openjdk.org>
> *Subject: *MacAccessible substring bug?
>
> Hi,
>
> I have an application which a user is reporting as unusable. The below
> happens, repeatedly (sent to me by the user). After calling
> Dialog.showAndWait, MacAccessible is trying to use String.substring()
> illegally (JFX 25).
>
> java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for
> length 1
> at java.base/jdk.internal.util.Preconditions$1.apply(Unknown
> Source)
> at java.base/jdk.internal.util.Preconditions$1.apply(Unknown
> Source)
> at java.base/jdk.internal.util.Preconditions$4.apply(Unknown
> Source)
> at java.base/jdk.internal.util.Preconditions$4.apply(Unknown
> Source)
> at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown
> Source)
> at
> java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Unknown
> Source)
> at
> java.base/jdk.internal.util.Preconditions.checkFromToIndex(Unknown Source)
> at java.base/java.lang.String.checkBoundsBeginEnd(Unknown Source)
> at java.base/java.lang.String.substring(Unknown Source)
> at javafx.graphics at 25-internal/com.sun.glass.ui.mac.MacAccessible.accessibilityAttributeValueForParameter(Unknown
> Source)
> at javafx.graphics at 25-internal/com.sun.glass.ui.mac.MacApplication._enterNestedEventLoopImpl(Native
> Method)
> at javafx.graphics at 25-internal/com.sun.glass.ui.mac.MacApplication._enterNestedEventLoop(Unknown
> Source)
> at javafx.graphics at 25-internal/com.sun.glass.ui.Application.enterNestedEventLoop(Unknown
> Source)
> at javafx.graphics at 25-internal/com.sun.glass.ui.EventLoop.enter(Unknown
> Source)
> at javafx.graphics at 25-internal/com.sun.javafx.tk.quantum.QuantumToolkit.enterNestedEventLoop(Unknown
> Source)
> at javafx.graphics at 25-internal/javafx.stage.Stage.showAndWait(Unknown
> Source)
> at javafx.controls at 25-internal/javafx.scene.control.HeavyweightDialog.showAndWait(Unknown
> Source)
> at javafx.controls at 25-internal/javafx.scene.control.Dialog.showAndWait(Unknown
> Source)
> <...SNIPPED...>
>
> It seems a lot like this (unfixed) issue here:
> https://bugs.openjdk.org/browse/JDK-8235989, except the fallout isn't
> trivial in my application's case (though, I'm not sure how the error
> manifests itself to the user). I cannot reproduce the issue myself.
>
> Is this a bug and can/should this be fixed?
>
>
>
> Kind Regards,
> Cormac
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20251017/f437d59f/attachment-0001.htm>
More information about the openjfx-dev
mailing list