<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="https://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    Re: Unable to catch RuntimeException in client EJB
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="https://community.jboss.org/people/bibhu">Bibhu Jena</a> in <i>EJB3</i> - <a href="https://community.jboss.org/message/783569#783569">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>As per your suggestion,I tried catching the <code class="jive-code jive-java">EJBTransactionRolledbackException,but no luck.<br/></code>The exception is thrown out side of the try() block i.e.exception is thrown after the execution of this method.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Below is my understanding on why it is not able to catch .let me know if doesn't make any sense.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I am using EJB with Seam on server side and GWT (dont bother ;just a GUI tehnology like JSF)on client side.</p><blockquote class="jive-quote"><p>@Local public interface SaveUserDataService{ </p><p>public void save(Person person); </p><p>} </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>//client EJB which expects a SecurityBreakException </p><p>@Stateful SaveUserDataServiceBean implements SaveUserDataService{ </p><p>public void save(Person person){ </p><p>try{ //code to call dao layer to save a person</p><p> } catch (SecurityBreakException e) { </p><p>// parse the exception and show a meaningful message to user </p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</p><p>&#160;&#160;&#160;&#160;&#160; } </p><p>} </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><code class="jive-code jive-java">
 
</code></blockquote><p>When user clicks on save button , the request comes to save() method of SaveUserDataServiceBean which&#160; is the boundary ejb .</p><p>Transaction begins when the call stack starts and commits when the call stack ends.Call stack is basically the stack of methods consists of all the methods starting from the boundary method (root of the stack ie "save(Person person) ") till the last call to DAO ;basically all nested method calls.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>So, container commits/rolls back the transaction when the stack ends i.e. the boundary method completes execution, and DataChangeListener is triggered just before the commit.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Thanks</p><p>Bibhu</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="https://community.jboss.org/message/783569#783569">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in EJB3 at <a href="https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2029">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>