[External] : Re: MacAccessible substring bug?

Andy Goryachev andy.goryachev at oracle.com
Fri Oct 17 21:55:44 UTC 2025


Thank you!

-andy

From: Cormac Redmond <credmond at certak.com>
Date: Friday, October 17, 2025 at 14:21
To: Andy Goryachev <andy.goryachev at oracle.com>
Cc: OpenJFX <openjfx-dev at openjdk.org>
Subject: Re: [External] : Re: MacAccessible substring bug?


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<mailto: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<mailto:credmond at certak.com>>
Date: Friday, October 17, 2025 at 08:38
To: Andy Goryachev <andy.goryachev at oracle.com<mailto:andy.goryachev at oracle.com>>
Cc: OpenJFX <openjfx-dev at openjdk.org<mailto: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<mailto: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<mailto:openjfx-dev-retn at openjdk.org>> on behalf of Cormac Redmond <credmond at certak.com<mailto:credmond at certak.com>>
Date: Wednesday, October 15, 2025 at 12:52
To: OpenJFX <openjfx-dev at openjdk.org<mailto: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/a5e6e4b4/attachment-0001.htm>


More information about the openjfx-dev mailing list