[cdi-dev] [JBoss JIRA] (CDI-705) BEFORE_COMPLETION Transactional observer is notified for transaction which is marked for rollback

Martin Kouba (JIRA) issues at jboss.org
Tue Jun 6 07:19:01 EDT 2017


    [ https://issues.jboss.org/browse/CDI-705?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13416829#comment-13416829 ] 

Martin Kouba commented on CDI-705:
----------------------------------

It was probably just an oversight. To be honest I always thought that {{javax.transaction.Synchronization.beforeCompletion()}} is also called for a tx that was rolled back because the "two-phase transaction commit process" also handles "failure commit phase". [~tomjenkinson] From the tx point of view what is the reason not to call this method?

> 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