<!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: Loading processInstance/session via JPA, workItem executes before able to register workItems
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="https://community.jboss.org/people/marcusportmann">Marcus Portmann</a> in <i>jBPM</i> - <a href="https://community.jboss.org/message/736669#736669">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 Ryan,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I encountered the same problem but am still working on finding a solution. </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I believe that the problem is a result of a race condition where when a persistent knowledge session is unmarshalled as part of the call-chain for <strong><a class="jive-link-anchor-small"><span class="java_type" style="color: #000000;">JPAKnowledgeService</span><span class="java_separator" style="color: #000000;">.</span><span class="java_plain" style="color: #000000;">loadStatefulKnowledgeSession</span></a>(...)</strong> the "timer job" infrastructure is initialised and any pending "timer jobs" are immediatelly executed before the knowledge session is completely initialised. In my case what happens is that a TimerJobInstance executes before the following line is executed in the <strong>initKsession</strong> method for the <strong>SingleSessionCommandService</strong> class so the CommandService for my <strong>TimerJobFactoryManager</strong> instance is still null.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160;&#160;&#160;&#160; ((AcceptsTimerJobFactoryManager) ((InternalKnowledgeRuntime) ksession).getTimerService()).getTimerJobFactoryManager().setCommandService( this );&#160; </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The issue seems to be that timer job instances should not executed until the knowledge session is completely initialised. This initialisation should include things like registering the work item handlers which should solve your problem. </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I believe that the knowledge session itself needs some sort of "resume" method so that it can be instructed when to resume once it has been completely initialised. This "resume" method would kick-off any timer jobs. Unfortunately I am not familiar enough with the Drools/JBPM code-base to suggest how this should be implemented.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Regards,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Marcus</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/736669#736669">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in jBPM at <a href="https://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>