<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> 
        <base href="https://issues.jboss.org"> 
        <title>Message Title</title> 
    </head> 
    <body class="jira" style="color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 1.429"> 
        <table id="background-table" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; background-color: #f5f5f5; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt" bgcolor="#f5f5f5"> 
            <!-- header here --> 
            <tbody>
                <tr> 
                    <td id="header-pattern-container" style="padding: 0px; border-collapse: collapse; padding: 10px 20px"> 
                        <table id="header-pattern" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                            <tbody>
                                <tr> 
                                    <td id="header-avatar-image-container" valign="top" style="padding: 0px; border-collapse: collapse; vertical-align: top; width: 32px; padding-right: 8px" width="32"> <img id="header-avatar-image" class="image_fix" src="https://static.jboss.org/developer/gravatar/46deeb7ca7f4f95b5d42307b992c85f2?d=mm&amp;s=48" height="32" width="32" border="0" style="border-radius: 3px; vertical-align: top"> </td> 
                                    <td id="header-text-container" valign="middle" style="padding: 0px; border-collapse: collapse; vertical-align: middle; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> <a class="user-hover" rel="steappe" id="email_steappe" href="https://issues.jboss.org/secure/ViewProfile.jspa?name=steappe" style="color:#3b73af;; color: #3b73af; text-decoration: none">Stéphane Appercel</a> <strong>commented</strong> on <a href="https://issues.jboss.org/browse/WELD-2489" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-avatar-fd1e4464-26f5-4cbc-a2eb-feaa8dc86fd7" height="16" width="16" border="0" align="absmiddle" alt="Bug"> WELD-2489</a> </td> 
                                </tr> 
                            </tbody>
                        </table> </td> 
                </tr> 
                <tr> 
                    <td id="email-content-container" style="padding: 0px; border-collapse: collapse; padding: 0 20px"> 
                        <table id="email-content-table" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; border-spacing: 0; border-collapse: separate"> 
                            <tbody>
                                <tr> 
                                    <!-- there needs to be content in the cell for it to render in some clients --> 
                                    <td class="email-content-rounded-top mobile-expand" style="padding: 0px; border-collapse: collapse; color: #ffffff; padding: 0 15px 0 16px; height: 15px; background-color: #ffffff; border-left: 1px solid #cccccc; border-top: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom: 0; border-top-right-radius: 5px; border-top-left-radius: 5px; height: 10px; line-height: 10px; padding: 0 15px 0 16px; mso-line-height-rule: exactly" height="10" bgcolor="#ffffff">&nbsp;</td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff" bgcolor="#ffffff"> 
                                        <table class="page-title-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                                            <tbody>
                                                <tr> 
                                                    <td style="vertical-align: top;; padding: 0px; border-collapse: collapse; padding-right: 5px; font-size: 20px; line-height: 30px; mso-line-height-rule: exactly" class="page-title-pattern-header-container"> <span class="page-title-pattern-header" style="font-family: Arial, sans-serif; padding: 0; font-size: 20px; line-height: 30px; mso-text-raise: 2px; mso-line-height-rule: exactly; vertical-align: middle"> <a href="https://issues.jboss.org/browse/WELD-2489" style="color: #3b73af; text-decoration: none">Re: TransactionServices and after completion issue</a> </span> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td id="text-paragraph-pattern-top" class="email-content-main mobile-expand  comment-top-pattern" style="padding: 0px; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff; border-bottom: none; padding-bottom: 0" bgcolor="#ffffff"> 
                                        <table class="text-paragraph-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 2px"> 
                                            <tbody>
                                                <tr> 
                                                    <td class="text-paragraph-pattern-container mobile-resize-text " style="padding: 0px; border-collapse: collapse; padding: 0 0 10px 0"> <p style="margin: 10px 0 0 0; margin-top: 0">I mean this:</p> <p style="margin: 10px 0 0 0"></p> 
                                                        <div id="syntaxplugin" class="syntaxplugin" style="border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;"> 
                                                            <table cellspacing="0" cellpadding="0" border="0" width="100%" style="font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                                                                <tbody> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0"><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">    </span><span style="color: gray; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">/**</span></pre> </td> 
                                                                    </tr> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;   width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0"><span style="color: gray; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">     * Invoked when the transaction has been committed or rolled back.</span></pre> </td> 
                                                                    </tr> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;   width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0"><span style="color: gray; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">     *</span></pre> </td> 
                                                                    </tr> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;   width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0"><span style="color: gray; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">     * @param status the status of the transaction.</span></pre> </td> 
                                                                    </tr> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;   width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0"><span style="color: gray; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">     */</span></pre> </td> 
                                                                    </tr> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;   width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0"><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">    </span><span style="color: #006699; font-weight: bold; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">private</span><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;"> </span><span style="color: #006699; font-weight: bold; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">void</span><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;"> afterCompletion(</span><span style="color: #006699; font-weight: bold; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">int</span><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;"> status) {</span></pre> </td> 
                                                                    </tr> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;   width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0"><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">        </span><span style="color: #006699; font-weight: bold; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">if</span><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;"> (synchronizationObserver != </span><span style="color: #006699; font-weight: bold; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">null</span><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">) {</span></pre> </td> 
                                                                    </tr> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;   width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0"><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">            LOGGER.info(() -&gt; String.format(</span><span style="color: blue; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">"notifying after completion - %s"</span><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">, status));</span></pre> </td> 
                                                                    </tr> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;   width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0"><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">            synchronizationObserver.afterCompletion(status);</span></pre> </td> 
                                                                    </tr> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;   width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0"><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">            LOGGER.info(</span><span style="color: blue; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">"after completion notified"</span><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">);</span></pre> </td> 
                                                                    </tr> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;   width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0"><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">        }</span></pre> </td> 
                                                                    </tr> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;   width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0">&nbsp;</pre> </td> 
                                                                    </tr> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;   width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0"><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">        </span><span style="color: #008200; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">// if not cleared, we get an infinite loop when an event is fired during a transaction</span></pre> </td> 
                                                                    </tr> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;   width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0"><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">        synchronizationObserver = </span><span style="color: #006699; font-weight: bold; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">null</span><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">;</span></pre> </td> 
                                                                    </tr> 
                                                                    <tr id="syntaxplugin_code_and_gutter"> 
                                                                        <td style=" line-height: 1.4em !important; padding: 0em; vertical-align: top;; padding: 0px; border-collapse: collapse"> <pre style="font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;; margin: 10px 0 0 0; margin-top: 0"><span style="color: black; font-family: 'Consolas', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">    }
</span></pre> </td> 
                                                                    </tr> 
                                                                </tbody> 
                                                            </table> 
                                                        </div> <p style="margin: 10px 0 0 0"></p> <p style="margin: 10px 0 0 0">This method is extracted from my implementation of UserTransaction, and is invoked after a transaction is committed or rolled back. If I do not set the synchronization observer to null, and a transactional observer starts a transaction, I get either the problem I've reported here or an infinite loop where the same event is fired again and again, depending on whether transaction observer is executed on the current thread or scheduled for a deferred execution.</p> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff" bgcolor="#ffffff"> 
                                        <table id="actions-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> 
                                            <tbody>
                                                <tr> 
                                                    <td id="actions-pattern-container" valign="middle" style="padding: 0px; border-collapse: collapse; padding: 10px 0 10px 24px; vertical-align: middle; padding-left: 0"> 
                                                        <table align="left" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                                                            <tbody>
                                                                <tr> 
                                                                    <td class="actions-pattern-action-icon-container" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 0; vertical-align: middle"> <a href="https://issues.jboss.org/browse/WELD-2489#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none"> <img class="actions-pattern-action-icon-image" src="cid:jira-generated-image-static-comment-icon-41890d0b-90d2-4e64-9656-9c6b57c405a3" alt="Add Comment" title="Add Comment" height="16" width="16" border="0" style="vertical-align: middle"> </a> </td> 
                                                                    <td class="actions-pattern-action-text-container" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 4px; padding-left: 5px"> <a href="https://issues.jboss.org/browse/WELD-2489#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none">Add Comment</a> </td> 
                                                                </tr> 
                                                            </tbody>
                                                        </table> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <!-- there needs to be content in the cell for it to render in some clients --> 
                                <tr> 
                                    <td class="email-content-rounded-bottom mobile-expand" style="padding: 0px; border-collapse: collapse; color: #ffffff; padding: 0 15px 0 16px; height: 5px; line-height: 5px; background-color: #ffffff; border-top: 0; border-left: 1px solid #cccccc; border-bottom: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; mso-line-height-rule: exactly" height="5" bgcolor="#ffffff">&nbsp;</td> 
                                </tr> 
                            </tbody>
                        </table> </td> 
                </tr> 
                <tr> 
                    <td id="footer-pattern" style="padding: 0px; border-collapse: collapse; padding: 12px 20px"> 
                        <table id="footer-pattern-container" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                            <tbody>
                                <tr> 
                                    <td id="footer-pattern-text" class="mobile-resize-text" width="100%" style="padding: 0px; border-collapse: collapse; color: #999999; font-size: 12px; line-height: 18px; font-family: Arial, sans-serif; mso-line-height-rule: exactly; mso-text-raise: 2px"> This message was sent by Atlassian JIRA <span id="footer-build-information">(v7.5.0#75005-<span title="fd8c849d4e278dd8bbaccc61e707a716ad697024" data-commit-id="fd8c849d4e278dd8bbaccc61e707a716ad697024}">sha1:fd8c849</span>)</span> </td> 
                                    <td id="footer-pattern-logo-desktop-container" valign="top" style="padding: 0px; border-collapse: collapse; padding-left: 20px; vertical-align: top"> 
                                        <table style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                                            <tbody>
                                                <tr> 
                                                    <td id="footer-pattern-logo-desktop-padding" style="padding: 0px; border-collapse: collapse; padding-top: 3px"> <img id="footer-pattern-logo-desktop" src="cid:jira-generated-image-static-footer-desktop-logo-058fd5a6-aafb-4ee6-a47a-69b92b94e9c4" alt="Atlassian logo" title="Atlassian logo" width="169" height="36" class="image_fix"> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                            </tbody>
                        </table> </td> 
                </tr> 
            </tbody>
        </table>   
    </body>
</html>