[jboss-jira] [JBoss JIRA] (WFLY-8954) Wildfly 10 with eclipselink Onscucess observer gets stale entity
Scott Marlow (JIRA)
issues at jboss.org
Fri Jun 30 08:44:00 EDT 2017
[ https://issues.jboss.org/browse/WFLY-8954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13429898#comment-13429898 ]
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)
More information about the jboss-jira
mailing list