diff --git a/extensions/narayana-stm/deployment/src/main/java/io/quarkus/narayana/stm/deployment/NarayanaSTMProcessor.java b/extensions/narayana-stm/deployment/src/main/java/io/quarkus/narayana/stm/deployment/NarayanaSTMProcessor.java index b23e3d0b602fa..bb2082d8e3bcf 100644 --- a/extensions/narayana-stm/deployment/src/main/java/io/quarkus/narayana/stm/deployment/NarayanaSTMProcessor.java +++ b/extensions/narayana-stm/deployment/src/main/java/io/quarkus/narayana/stm/deployment/NarayanaSTMProcessor.java @@ -18,6 +18,7 @@ import com.arjuna.ats.internal.arjuna.coordinator.CheckedActionFactoryImple; import com.arjuna.ats.internal.arjuna.objectstore.ShadowNoFileLockStore; +import com.arjuna.ats.internal.arjuna.utils.SocketProcessId; import com.arjuna.ats.txoj.Lock; import io.quarkus.deployment.Feature; @@ -30,6 +31,7 @@ import io.quarkus.deployment.builditem.nativeimage.NativeImageSystemPropertyBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveHierarchyBuildItem; +import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem; import io.quarkus.narayana.stm.runtime.NarayanaSTMRecorder; class NarayanaSTMProcessor { @@ -60,8 +62,11 @@ public NativeImageSystemPropertyBuildItem substrateSystemPropertyBuildItem() { // so disable it at runtime @BuildStep() @Record(RUNTIME_INIT) - public void configureRuntimeProperties(NarayanaSTMRecorder recorder) { + public void configureRuntimeProperties(NarayanaSTMRecorder recorder, + BuildProducer runtimeInit) { recorder.disableTransactionStatusManager(); + runtimeInit.produce(new RuntimeInitializedClassBuildItem(SocketProcessId.class.getName())); + runtimeInit.produce(new RuntimeInitializedClassBuildItem(Lock.class.getName())); } // register STM dynamic proxies