[cdi-dev] [JBoss JIRA] (CDI-705) BEFORE_COMPLETION Transactional observer is notified for transaction which is marked for rollback
Tom Jenkinson (JIRA)
issues at jboss.org
Tue Jun 6 07:13:00 EDT 2017
[ https://issues.jboss.org/browse/CDI-705?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13416821#comment-13416821 ]
Tom Jenkinson commented on CDI-705:
-----------------------------------
Maybe [~antoinesabot-durand] have a reason why the specifications differentiate? I can see the handling was added in WELD-2120 (PRs were merged even though Jira shows them as declined). There was a textual change to the spec too: https://github.com/cdi-spec/cdi/pull/370/files (thanks for the reference [~ochaloup])
> BEFORE_COMPLETION Transactional observer is notified for transaction which is marked for rollback
> -------------------------------------------------------------------------------------------------
>
> Key: CDI-705
> URL: https://issues.jboss.org/browse/CDI-705
> Project: CDI Specification Issues
> Issue Type: Bug
> Components: Events
> Affects Versions: 2.0 .Final
> Reporter: Tomas Remes
>
> In {{10.4.5. Transactional observer methods}} CDI spec states:
> {quote}
> If the transaction is in progress, but javax.transaction.Synchronization callback cannot be
> registered due to the transaction being already marked for rollback or in state where
> javax.transaction.Synchronization callbacks cannot be registered, the before completion, after completion and after failure observer methods are notified at the same time as other observers, but after_success observer methods get skipped.
> {quote}
> This doesn't conform to JTA spec, which says in {{3.3.2 Transaction Synchronization}}:
> {quote}
> The Synchronization.beforeCompletion method is called prior to the
> start of the two-phase transaction commit process. This call is executed with
> the transaction context of the transaction that is being committed.
> {quote}
> So the before_completion transactional observer shouldn't be notified for transaction marked for rollback.
> The method {{Synchronization.beforeCompletion}} is actually not called at WildFly and GlassFish app servers for transaction which is marked for rollback.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
More information about the cdi-dev
mailing list