I don't think anything you are doing in your application could be causing this. The change in JavaFX 27 that is impacting your application is that the Metal graphics pipeline is now the default. To temporarily switch back to OpenGL, run your app with:

java -Dprism.order=es2

If you are able to run and provide us more information, it would be helpful:

java -Dprism.verbose=true ...

This will log some additional information about the graphics adapter. Also, is there an hs_err*.log file?

-- Kevin


On 11/2/2026 9:01 AM, Chad Preisler wrote:
Hello,

I recently updated my application to use JavaFX 27 and Java 27. When
running on a Mac today, I got a segmentation fault. I've been using this
application for years, and this is the first time I've had it happen. If
this is something I'm doing in my application to cause this issue I'm not
sure how to fix it.

Below is additional information about the machine and JDK used. If there
are any additional logs I can provide to troubleshoot this let me know.

This was running on maxOS Sequoia 15.7.7 on an Apple M3 Pro.

Here is the information I got from the segmentation fault.

💣 Program crashed: Bad pointer dereference at 0x0000000000000010
Thread 17 "Java: QuantumRenderer-0" crashed:
0 0x000000019937d820 objc_msgSend + 32 in libobjc.A.dylib
1 0x0000000101e032c0 Java_com_sun_prism_mtl_MTLContext_nUpdateRenderTarget
+ 36 in libprism_mtl.dylib
2 0x000000014588af68
3 0x00000001457e6070
Backtrace took 15.33s
/ktquery-macos_arm64/bin/ktquery: line 4: 68847 Segmentation fault: 11
  $DIR/java $JLINK_VM_OPTIONS -m com.kafkasource.visualkafka/
com.kafkasource.visualkafka.App "$@"
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

Here is the JVM I'm using.

bin % java -version
openjdk version "27" 2026-09-15
OpenJDK Runtime Environment Homebrew (build 27)
OpenJDK 64-Bit Server VM Homebrew (build 27, mixed mode, sharing)

Here is the jlink report of the modules pulled in.

INFO] --- javafx:0.0.8:jlink (default-cli) @ visualkafka ---

atlantafx.base
file:///Users/preisc2/.m2/repository/io/github/mkpaz/atlantafx-base/2.1.0/atlantafx-base-2.1.0.jar
ch.qos.logback.classic
file:///Users/preisc2/.m2/repository/ch/qos/logback/logback-classic/1.5.18/logback-classic-1.5.18.jar
ch.qos.logback.core
file:///Users/preisc2/.m2/repository/ch/qos/logback/logback-core/1.5.18/logback-core-1.5.18.jar
com.fasterxml.jackson.annotation
file:///Users/preisc2/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.19.0/jackson-annotations-2.19.0.jar
com.fasterxml.jackson.core
file:///Users/preisc2/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.19.0/jackson-core-2.19.0.jar
com.fasterxml.jackson.databind
file:///Users/preisc2/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.19.0/jackson-databind-2.19.0.jar
com.fasterxml.jackson.datatype.jsr310
file:///Users/preisc2/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.19.0/jackson-datatype-jsr310-2.19.0.jar
com.kafkasource.visualkafka
file:///Users/preisc2/temp/visualkafka/visualkafka-ui/target/classes/
com.kafkasource.visualkafka.fx
file:///Users/preisc2/.m2/repository/com/kafkasource/visualkafka/visualkafka-fx/1.0-SNAPSHOT/visualkafka-fx-1.0-SNAPSHOT.jar
com.kafkasource.visualkafka.lib
file:///Users/preisc2/.m2/repository/com/kafkasource/visualkafka/visualkafka-lib/1.0-SNAPSHOT/visualkafka-lib-1.0-SNAPSHOT.jar
java.base
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/java.base.jmod
java.datatransfer
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/java.datatransfer.jmod
java.desktop
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/java.desktop.jmod
java.logging
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/java.logging.jmod
java.management
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/java.management.jmod
java.naming
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/java.naming.jmod
java.net.http
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/java.net.http.jmod
java.prefs
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/java.prefs.jmod
java.scripting
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/java.scripting.jmod
java.security.jgss
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/java.security.jgss.jmod
java.security.sasl
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/java.security.sasl.jmod
java.sql
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/java.sql.jmod
java.transaction.xa
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/java.transaction.xa.jmod
java.xml
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/java.xml.jmod
javafx.base
file:///Users/preisc2/.m2/repository/org/openjfx/javafx-base/27/javafx-base-27-mac-aarch64.jar
javafx.controls
file:///Users/preisc2/.m2/repository/org/openjfx/javafx-controls/27/javafx-controls-27-mac-aarch64.jar
javafx.fxml
file:///Users/preisc2/.m2/repository/org/openjfx/javafx-fxml/27/javafx-fxml-27-mac-aarch64.jar
javafx.graphics
file:///Users/preisc2/.m2/repository/org/openjfx/javafx-graphics/27/javafx-graphics-27-mac-aarch64.jar
javafx.media
file:///Users/preisc2/.m2/repository/org/openjfx/javafx-media/27/javafx-media-27-mac-aarch64.jar
javafx.swing
file:///Users/preisc2/.m2/repository/org/openjfx/javafx-swing/27/javafx-swing-27-mac-aarch64.jar
javafx.web
file:///Users/preisc2/.m2/repository/org/openjfx/javafx-web/27/javafx-web-27-mac-aarch64.jar
jdk.jsobject
file:///Users/preisc2/.m2/repository/org/openjfx/jdk-jsobject/27/jdk-jsobject-27-mac-aarch64.jar
jdk.management
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/jdk.management.jmod
jdk.unsupported
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/jdk.unsupported.jmod
jdk.unsupported.desktop
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/jdk.unsupported.desktop.jmod
jdk.xml.dom
file:///opt/homebrew/Cellar/openjdk/27/libexec/openjdk.jdk/Contents/Home/jmods/jdk.xml.dom.jmod
org.apache.commons.codec
file:///Users/preisc2/.m2/repository/commons-codec/commons-codec/1.18.0/commons-codec-1.18.0.jar
org.apache.commons.compress
file:///Users/preisc2/.m2/repository/org/apache/commons/commons-compress/1.27.1/commons-compress-1.27.1.jar
org.apache.commons.csv
file:///Users/preisc2/.m2/repository/org/apache/commons/commons-csv/1.14.0/commons-csv-1.14.0.jar
org.apache.commons.io
file:///Users/preisc2/.m2/repository/commons-io/commons-io/2.18.0/commons-io-2.18.0.jar
org.apache.commons.jexl3
file:///Users/preisc2/.m2/repository/org/apache/commons/commons-jexl3/3.6.2/commons-jexl3-3.6.2.jar
org.apache.commons.lang3
file:///Users/preisc2/.m2/repository/org/apache/commons/commons-lang3/3.17.0/commons-lang3-3.17.0.jar
org.apache.commons.logging
file:///Users/preisc2/.m2/repository/commons-logging/commons-logging/1.3.5/commons-logging-1.3.5.jar
org.jfree.chart
file:///Users/preisc2/.m2/repository/org/jfree/jfreechart/2.0.0-SNAPSHOT/jfreechart-2.0.0-SNAPSHOT.jar
org.jfree.chart.fx
file:///Users/preisc2/.m2/repository/org/jfree/org.jfree.chart.fx/2.0.4-SNAPSHOT/org.jfree.chart.fx-2.0.4-SNAPSHOT.jar
org.jfree.fxgraphics2d
file:///Users/preisc2/.m2/repository/org/jfree/org.jfree.fxgraphics2d/2.1.6-SNAPSHOT/org.jfree.fxgraphics2d-2.1.6-SNAPSHOT.jar
org.jfxmodules.avro
file:///Users/preisc2/.m2/repository/org/jfxmodules/avro-module/1.12.0-SNAPSHOT/avro-module-1.12.0-SNAPSHOT.jar
org.jfxmodules.jose4j
file:///Users/preisc2/.m2/repository/org/jfxmodules/jose4j-module/0.9.5-SNAPSHOT/jose4j-module-0.9.5-SNAPSHOT.jar
org.jfxmodules.kafka.clients
file:///Users/preisc2/.m2/repository/org/jfxmodules/kafka-clients-module/4.1.1-SNAPSHOT/kafka-clients-module-4.1.1-SNAPSHOT.jar
org.jfxmodules.mods
file:///Users/preisc2/.m2/repository/org/jfxmodules/mods/1.1-SNAPSHOT/mods-1.1-SNAPSHOT.jar
org.slf4j
file:///Users/preisc2/.m2/repository/org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar


Providers:

   com.fasterxml.jackson.core provides
com.fasterxml.jackson.core.JsonFactory not used by any observable module
   com.fasterxml.jackson.databind provides
com.fasterxml.jackson.core.ObjectCodec used by com.fasterxml.jackson.core
   com.fasterxml.jackson.datatype.jsr310 provides
com.fasterxml.jackson.databind.Module used by com.fasterxml.jackson.databind
   java.desktop provides java.net.ContentHandlerFactory used by java.base
   java.base provides java.nio.file.spi.FileSystemProvider used by java.base
   java.naming provides java.security.Provider used by java.base
   java.security.jgss provides java.security.Provider used by java.base
   java.security.sasl provides java.security.Provider used by java.base
   java.desktop provides javax.print.PrintServiceLookup used by java.desktop
   java.desktop provides javax.print.StreamPrintServiceFactory used by
java.desktop
   org.apache.commons.jexl3 provides javax.script.ScriptEngineFactory used
by java.scripting
   java.management provides javax.security.auth.spi.LoginModule used by
java.base
   java.desktop provides javax.sound.midi.spi.MidiDeviceProvider used by
java.desktop
   java.desktop provides javax.sound.midi.spi.MidiFileReader used by
java.desktop
   java.desktop provides javax.sound.midi.spi.MidiFileWriter used by
java.desktop
   java.desktop provides javax.sound.midi.spi.SoundbankReader used by
java.desktop
   java.desktop provides javax.sound.sampled.spi.AudioFileReader used by
java.desktop
   java.desktop provides javax.sound.sampled.spi.AudioFileWriter used by
java.desktop
   java.desktop provides javax.sound.sampled.spi.FormatConversionProvider
used by java.desktop
   java.desktop provides javax.sound.sampled.spi.MixerProvider used by
java.desktop
   java.logging provides jdk.internal.logger.DefaultLoggerFinder used by
java.base
   ch.qos.logback.classic provides org.slf4j.spi.SLF4JServiceProvider used
by org.slf4j
   java.desktop provides sun.datatransfer.DesktopDatatransferService used by
java.datatransfer
   jdk.management provides sun.management.spi.PlatformMBeanProvider used by
java.management
   jdk.unsupported.desktop provides sun.swing.InteropProvider used by
java.desktop

Warning: The 0 argument for --compress is deprecated and may be removed in
a future release

[INFO] Building zip:
/Users/preisc2/temp/visualkafka/visualkafka-ui/target/ktquery-macos_arm64.zip

Reply via email to