[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