Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8262292

JavaFX deadlocks if another app is using macOS Accessibility API in the background

    XMLWordPrintable

    Details

      Description

      ADDITIONAL SYSTEM INFORMATION :
      macOS 10.15.7
      JavaFX 15.0.1
      openjdk15/jdk-15.0.1+9

      A DESCRIPTION OF THE PROBLEM :
      This issue seems to be the same as described in https://bugs.openjdk.java.net/browse/JDK-8214209

      You can find more context, steps to reproduce, and analysis on this ticket as well: https://github.com/lwouis/alt-tab-macos/issues/822#issuecomment-778902109

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      * Run the AltTab app (download .app here: https://alt-tab-macos.netlify.app/)
      * Run the MediathekView app: https://github.com/mediathekview/MediathekView.git (download the pre-built mac app, or git clone + run it)
      * In MediathekView, click the "Merkliste verwalten" button (see screenshot here: https://github.com/lwouis/alt-tab-macos/issues/822#issuecomment-778902109)

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      A window opens and the app runs normally
      ACTUAL -
      The app freezes indefinitely (deadlock)

      ---------- BEGIN SOURCE ----------
      You can run/debug the source code of MediathekView here: https://github.com/mediathekview/MediathekView I did it and found that it deadlocks in JavaFX code. More analysis from me: https://github.com/lwouis/alt-tab-macos/issues/822#issuecomment-778916280
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      The app works correctly if AltTab is not running. I'm the author of AltTab, and I've seen similar issues in Java apps. I've seen it in Jetbrains product for instance, and they are not using JavaFX I imagine. That could imply that the issue is lower in the stack (e.g. in the AWT layers).

      In AltTab, I can prevent the issue triggering in MediathekView by removing 1 line of code, so it seems to be the issue. That line is a call to `AXObserverAddNotification` to get notified of the Accessibility event called `kAXFocusedUIElementChangedNotification`. Observing that event creates an issue in Java apps that results in a deadlock apparently.

      FREQUENCY : always


        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              webbuggrp Webbug Group
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated: