[
https://issues.jboss.org/browse/WFLY-8954?page=com.atlassian.jira.plugin....
]
Scott Marlow commented on WFLY-8954:
------------------------------------
Hi,
I think that the first change to try, is in org.jipijapa.eclipselink.WildFlyServerPlatform
(as you suggested). In WildFlyServerPlatform, instead of returning the TransactionManager
instance that we currently returning, we create create a custom TransactionManager
(wrapper) class that delegates most of the TransactionManager calls to the original
TransactionManager instance, for the TransactionManager.getTransaction(), we would return
a custom Transaction (wrapper) class that delegates most calls to the original value
returned by originalTransactionManager.getTransaction(). Yes, we have two levels of
wrappers here. Then, in the TransactionWrapper class, we delegate most calls to the
original Transaction instance, except for the
Transaction.registerSynchronization(Synchronization) call, which we will not delegate to
the original Transaction instance, but instead redirect to the
TransactionSynchronizationRegistry.registerSynchronization(Synchronization), so that
EclipseLink will be called earlier.
I'm busy with a few other things at the moment, if you would like to contribute a
potential patch, I can give you ideas of how to proceed on WildFly master to recreate the
bug with a small unit test change and also how to translate my above (mumbo/jumbo) notes,
into a clean patch. :)
I also posted to [
https://javaee.groups.io/g/jpa-spec/topics] suggesting that JPA 2.2
should require all persistence providers to support use of
TransactionSynchronizationRegistry.registerSynchronization.
Scott
Wildfly 10 with eclipselink Onscucess observer gets stale entity
----------------------------------------------------------------
Key: WFLY-8954
URL:
https://issues.jboss.org/browse/WFLY-8954
Project: WildFly
Issue Type: Bug
Components: JPA / Hibernate
Affects Versions: 10.0.0.Final
Reporter: Nuno Godinho de Matos
Assignee: Scott Marlow
Hi,
In widlfly there seems to be an important issue concerning CDI events and observing these
events during onsuccess. At least while using eclipselink.
When using wildfly 10.0.0.Final together with eclipselink, if an application modifies an
entity A, fires an event stating entity A has been modified, and an observer consumes this
event during transaction success.
Then the observer will be working with stale entities that do not reflect the
modifications done to the entity.
A sample application for this issue is available in:
https://github.com/99sono/wildfly10-observe-on-success-stale-entity
The widlfly configuration xml for the sample application, is available in the application
itself, as can be seen in the readme documentation.
Many thanks for taking a look.
Kindest regards.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)