<!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="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">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;">
    How to recognize when async-node is finished?
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="http://community.jboss.org/people/johannesk">Johannes Krämer</a> in <i>jBPM</i> - <a href="http://community.jboss.org/message/548072#548072">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>Hi,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I'm trying to run a test with a simple process definition that contains the start state, an async node, a wait state and the end state. An example is attached.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I create a process instance, remember the ID, obtain the root token and send a signal. The token then moves to the first node, which has set async to true. Then I save the processInstance and close the JbpmContext so the job message is sent to the job executor. The async node simply waits some time before it calls ExecutionContext.leaveNode() to send the token into a wait state.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>What I want to do now is: retrieve the process instance by the previously saved ID (with a newly created JbpmContext), get the root token and send a signal to make it take the transition to the end state.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>My problem is: How long do I have to wait after the token was sent to the async node if I want to be sure that the token has entered the next wait state and is no longer locked by the job? Is there any possibility to be notified?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I tried to use a simple monitor where the main thread calls wait() after sending the first signal and the node implementation calls notifyAll() after leaveNode(), but the token is still locked by "Job(1)" when I send the second signal. It works if I wait some extra time (e. g. 250 ms) in the main thread before sending the second signal, but that is obviously not a good solution.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Kind regards</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Johannes Kr&auml;mer</p></div>

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


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

</div>

</body>
</html>