<!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;">
    JBPM-2537
</h3>
<span style="margin-bottom: 10px;">
    reply from <a href="http://community.jboss.org/people/swiderski.maciej">Maciej Swiderski</a> in <i>jBPM Development</i> - <a href="http://community.jboss.org/message/541263#541263">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>here comes my comments:</p><blockquote class="jive-quote"><p>HuiSheng Xu wrote:</p>&#160;&#160; We should add more information in here.&#160; And the state constaints is defined in Task interface.&#160; So should we move STATE_TIMEOUT and STATE_CANCELLED from HistoryTask to Task?<br/><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160;&#160; Actually, the STATE_COMPLETED field in Task is duplicated by STATE_COMPLETED field in HistoryTask.</p><code class="jive-code jive-xml"><span class="jive-xml-tag"> </span>
</code></blockquote><p>In my opinion Task and HistoryTask are two different entities and they should be kept separated.</p><p>States are defined in both places because they are used by different queries. So I think they should be as is.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><blockquote class="jive-quote"><p>HuiSheng Xu wrote:</p><p>&#160; 1.Should we modify TaskImpl.isComplete(), let this method fit additional states: 'timeout' and 'cancelled'.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>&#160;&#160;&#160;&#160; Now the isComplete() is like this:</p><pre class="jive-pre"><code class="jive-code jive-java"><span style="color: navy;"><strong>public</strong></span> <span style="color: navy;"><strong>boolean</strong></span> isCompleted() <span style="color: navy;">{</span>
&#160;&#160;&#160; <span style="color: navy;"><strong>if</strong></span> (Task.STATE_COMPLETED.equals(state)) <span style="color: navy;">{</span>
&#160;&#160;&#160;&#160;&#160; <span style="color: navy;"><strong>return</strong></span> <span style="color: navy;"><strong>true</strong></span>;
&#160;&#160;&#160; <span style="color: navy;">}</span>
&#160;&#160;&#160; <span style="color: navy;"><strong>if</strong></span> ((Task.STATE_OPEN.equals(state)) || (Task.STATE_SUSPENDED.equals(state))) <span style="color: navy;">{</span>
&#160;&#160;&#160;&#160;&#160; <span style="color: navy;"><strong>return</strong></span> <span style="color: navy;"><strong>false</strong></span>;
&#160;&#160;&#160; <span style="color: navy;">}</span>
&#160;&#160;&#160; <span style="color: navy;"><strong>return</strong></span> <span style="color: navy;"><strong>true</strong></span>;
&#160; <span style="color: navy;">}</span>
</code></pre>
</blockquote><p>I think this is only internal method and IMO it is about verifying if that was already completed in regular way. Timeout and cancel are not completion states, they just close the task and not complete it. That's why states for them are only for history purposes.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><blockquote class="jive-quote"><p>HuiSheng Xu wrote:</p><br/><p>&#160; 2. The content of TaskTimeout.java and TaskCancel.java is exactly the same.&#160; The only difference of them is the completion state,&#160; so should we make a abstract class, e.g. AbstractTaskCancel,&#160; and let them inherit the superclass?</p><span class="jive-xml-tag"></span></blockquote><p>Yeap, you are right here, they are quite the same. We could make an abstract class or shall we give it some thought and check if they should be the same?!</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><blockquote class="jive-quote"><p>HuiSheng Xu wrote:</p><br/><p>&#160; 3. I notice that there is a jbpm.task.lifecycle.xml configution file in the classpath since jBPM-4.0.0-Alpha2,&#160; and it contains the prossible states of task.&#160; Should we modify it as well? or this configuration file is useless and should be removed in the future version?&#160; The content of this file like below:</p><pre class="jive-pre"><code class="jive-code jive-xml"><span class="jive-xml-tag">&lt;task-lifecycle initial="open"&gt;</span>
&#160; <span class="jive-xml-tag">&lt;state name="open"&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;transition name="complete" to="completed" /&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;transition name="suspend" to="suspended" /&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;transition name="cancel" to="cancelled" /&gt;</span>
&#160; <span class="jive-xml-tag">&lt;/state&gt;</span>
&#160; <span class="jive-xml-tag">&lt;state name="suspended"&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;transition name="resume" to="open" /&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;transition name="cancel" to="cancelled" /&gt;</span>
&#160; <span class="jive-xml-tag">&lt;/state&gt;</span>
&#160; <span class="jive-xml-tag">&lt;state name="cancelled" /&gt;</span>
&#160; <span class="jive-xml-tag">&lt;state name="completed" /&gt;</span>
<span class="jive-xml-tag">&lt;/task-lifecycle&gt;</span>
</code></pre>
</blockquote><p>I haven't seen it before, so thanks for pointing it out. I did look for it in the code but with the same result as Michael, no real references of it. They should not be used by custom code either since they are internal classes.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Thanks for your comments</p><p>Maciej</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/541263#541263">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in jBPM Development at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2035">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


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

</div>

</body>
</html>