| Steve Ebersole not currently sure, as https://issues.jboss.org/browse/WFLY-10229 is the real root condition/bug that causes IronJacamar to throw the exception to Hibernate. After WFLY-10229 is fixed, we might not need to do anything for HHH-12472 Open . Well, maybe not today anyway. Someday, I'd like to understand a better solution than EntityManager.find() returning null for certain failures but not all failures. A bit more detail that I saw when I debugged this, at org.hibernate.engine.transaction.jta.platform.internal.SynchronizationRegistryBasedSynchronizationStrategy.canRegisterSynchronization line 37, we are checking the transaction status via the org.jboss.as.txn.service.internal.tsr.TransactionSynchronizationRegistryWrapper which has a direct reference to the Arjuna TM (com.arjuna.ats.jbossatx.TransactionManagerDelegate. Seems like we should probably close this jira for now, unless you want EntityManager.find() to handle this case anyway, let me know and I'll think about how to recreate in the Hibernate project. tsr.getStatus() returns 1 (transaction rolledback back) instead of the expected transaction status of 4 that org.wildfly.transaction.client.ContextTransactionManager.getStatus() return currently.
at org.hibernate.engine.transaction.jta.platform.internal.SynchronizationRegistryBasedSynchronizationStrategy.canRegisterSynchronization(SynchronizationRegistryBasedSynchronizationStrategy.java:37)
at org.hibernate.engine.transaction.jta.platform.internal.AbstractJtaPlatform.canRegisterSynchronization(AbstractJtaPlatform.java:131)
at org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl.pulse(JtaTransactionCoordinatorImpl.java:154)
at org.hibernate.internal.AbstractSharedSessionContract.pulseTransactionCoordinator(AbstractSharedSessionContract.java:451)
at org.hibernate.internal.AbstractSharedSessionContract.checkTransactionSynchStatus(AbstractSharedSessionContract.java:445)
at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1252)
at org.hibernate.internal.SessionImpl.access$1900(SessionImpl.java:206)
at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.doLoad(SessionImpl.java:2864)
at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load(SessionImpl.java:2838)
at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3473)
at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3437)
|