<br><font size=2 face="sans-serif">Kris,<br>
</font>
<br><font size=2 face="sans-serif">Thanks yes - the null check fixes the
NPE I was seeing.</font>
<br>
<br><font size=2 face="sans-serif">Unfortunately, I now have a more difficult
problem. In my work item handler, I use the following code to get the ID
of a work item in the<i> rule flow</i> (i.e. the .rf file itself) given
a org.drools.runtime.process.WorkItem instance:</font>
<br>
<br><font size=2 face="Courier New">&nbsp; &nbsp; private long getCurrentNodeId(WorkItem
workItem) {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; ProcessInstance
processInstance = ksession.getProcessInstance(workItem.getProcessInstanceId());</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; if (processInstance
instanceof WorkflowProcessInstanceImpl) {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; Collection&lt;NodeInstance&gt; nodeInstances = ((WorkflowProcessInstanceImpl)
processInstance).getNodeInstances();</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; for (NodeInstance nodeInstance : nodeInstances) {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; System.out.println(String.format(&quot;Node instance:
%s&quot;, nodeInstance));</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; if (nodeInstance instanceof WorkItemNodeInstance)
{</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WorkItemNodeInstance workItemNodeInstance
= (WorkItemNodeInstance) nodeInstance;</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (workItemNodeInstance.getWorkItem()
== workItem) {</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return workItemNodeInstance.getNodeId();</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; }</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; throw new
RuntimeException(String.format(&quot;Error determining node ID for work
item: %s&quot;, workItem.toString()));</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; }</font>
<p><font size=2 face="sans-serif">The work item in the attached test case,
the first time it executes sets a property on a fact in memory that causes
a subsequent Split node to send the flow to an Event Wait. The code in
the overall main() method (in PersistenceTest.java) then updates the fact
in memory so that the Event Wait's constraint is satisfied, and the work
item node is executed again. The second time around, it sets the property
on the fact in memory so that the subsequent Split node sends the flow
to its end. (I hope this makes sense; looking at the rule flow in the test
case should show you what I'm trying to do.)</font>
<p>
<p><font size=2 face="sans-serif">If I execute the test case with my session
created using the code:</font>
<p><font size=2 face="sans-serif">&nbsp; </font><font size=2 face="Courier New">StatefulKnowledgeSession
ksession = kbase.newStatefulKnowledgeSession();</font>
<p><font size=2 face="sans-serif">everything works as I would expect, and
the output from the System.out.println() statement in my getCurrentNodeId()
method above is:</font>
<p><font size=2 face="Courier New">&nbsp; Node instance: org.drools.workflow.instance.node.WorkItemNodeInstance@125d568</font>
<br><font size=2 face="Courier New">&nbsp; Node instance: org.drools.workflow.instance.node.WorkItemNodeInstance@37a04c</font>
<br>
<br><font size=2 face="sans-serif">However, if I use JPA persistence:</font>
<p><font size=2 face="sans-serif">&nbsp; </font><font size=2 face="Courier New">StatefulKnowledgeSession
ksession = JPAKnowledgeService.newStatefulKnowledgeSession(kbase, null,
env);</font>
<p><font size=2 face="sans-serif">then the RuntimeException in getCurrentNodeId()
is thrown, and the output is:</font>
<p><font size=2 face="Courier New">&nbsp; Node instance: org.drools.workflow.instance.node.WorkItemNodeInstance@2209db</font>
<br><font size=2 face="Courier New">&nbsp; Node instance: org.drools.workflow.instance.node.MilestoneNodeInstance@d8fd1a</font>
<p><font size=2 face="sans-serif">Somehow it seems as though the node instance
isn't quite synchronised with the overall state when using JPA persistence.</font>
<p><font size=2 face="sans-serif">Any help you could give me here would
be very much appreciated.</font>
<p><font size=2 face="sans-serif">Regards,</font>
<p><font size=2 face="sans-serif">Alan</font>
<p>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Kris Verlaenen &lt;kris.verlaenen@cs.kuleuven.be&gt;</b>
</font>
<p><font size=1 face="sans-serif">30/10/2009 20:10</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">Alan.Gairey@tessella.com</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">Re: [rules-users] [droolsflow] Code-based
constraints for EventWait nodes - is this possible?</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><tt><font size=2>Alan, <br>
<br>
Thanks, this indeed seems to be the issue. &nbsp;I have changed this on<br>
trunk. &nbsp;Does adding this null check solve your issue?<br>
<br>
Thx,<br>
Kris<br>
<br>
Quoting Alan.Gairey@tessella.com:<br>
<br>
&gt; Kris,<br>
&gt; <br>
&gt; Some more information: the NullPointerException from GetObjectCommand<br>
&gt; is <br>
&gt; thrown by the line:<br>
&gt; <br>
&gt; &nbsp;<br>
&gt;<br>
((StatefulKnowledgeSessionImpl)ksession).session.getExecutionResult().getResults().put(<br>
&gt; <br>
&gt; this.outIdentifier,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;object );<br>
&gt; <br>
&gt; Method getExecutionResult() is returning null. Debugging my test<br>
&gt; case, I <br>
&gt; also notice that this.outIdentifier is also null.<br>
&gt; <br>
&gt; I then had a look at the GetObjectsCommand class; in its execute<br>
&gt; method, <br>
&gt; there is a line similar to that above. However, it is contained<br>
&gt; within an <br>
&gt; if block that checks this.outIdentifier is not null:<br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; if ( this.outIdentifier != null ) {<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; List objects = new ArrayList(
col );<br>
&gt; &nbsp;<br>
&gt; &nbsp;<br>
&gt;<br>
((StatefulKnowledgeSessionImpl)ksession).session.getExecutionResult().getResults().put(<br>
&gt; <br>
&gt; this.outIdentifier, objects );<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
&gt; <br>
&gt; If something similar was done in GetObjectCommand, presumably this<br>
&gt; would <br>
&gt; fix my problem?<br>
&gt; <br>
&gt; Hope this is of some use - regards,<br>
&gt; <br>
&gt; Alan<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Alan.Gairey@tessella.com <br>
&gt; Sent by: rules-users-bounces@lists.jboss.org<br>
&gt; 29/10/2009 17:35<br>
&gt; Please respond to<br>
&gt; Rules Users List &lt;rules-users@lists.jboss.org&gt;<br>
&gt; <br>
&gt; <br>
&gt; To<br>
&gt; Kris Verlaenen &lt;kris.verlaenen@cs.kuleuven.be&gt;<br>
&gt; cc<br>
&gt; Rules Users List &lt;rules-users@lists.jboss.org&gt;<br>
&gt; Subject<br>
&gt; Re: [rules-users] [droolsflow] Code-based constraints for EventWait<br>
&gt; nodes <br>
&gt; - is this possible?<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Kris,<br>
&gt; <br>
&gt; Thanks - making the class SimpleFact serializable fixed that error.
<br>
&gt; <br>
&gt; However, I now have a new problem: I have a rule flow containing a<br>
&gt; work <br>
&gt; item - the handler attempts to update the SimpleFact instance in<br>
&gt; memory <br>
&gt; before completing the task. The code in the executeWorkItem method
is<br>
&gt; as <br>
&gt; follows: <br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Collection&lt;FactHandle&gt; factHandles
=<br>
&gt; ksession.getFactHandles(new <br>
&gt; ObjectFilter() { <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public boolean accept(Object
object) { <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return (object
instanceof SimpleFact); <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; }); <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; for (Iterator&lt;FactHandle&gt; iterator
= factHandles.iterator();<br>
&gt; <br>
&gt; iterator.hasNext(); ) { <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FactHandle factHandle =
iterator.next(); <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SimpleFact fact = (SimpleFact)<br>
&gt; ksession.getObject(factHandle); <br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fact.setStatus(&quot;Error&quot;);
<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ksession.update(factHandle,
fact); <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; } <br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; workItemManager.completeWorkItem(workItem.getId(),
null); <br>
&gt; <br>
&gt; The call to getObject() causes the following exception to be thrown:<br>
&gt; <br>
&gt; <br>
&gt; java.lang.NullPointerException <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; at <br>
&gt;<br>
org.drools.command.runtime.rule.GetObjectCommand.execute(GetObjectCommand.java:35)<br>
&gt; <br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; at <br>
&gt;<br>
org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:254)<br>
&gt; <br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; at <br>
&gt;<br>
org.drools.command.impl.CommandBasedStatefulKnowledgeSession.getObject(CommandBasedStatefulKnowledgeSession.java:369)<br>
&gt; <br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; at <br>
&gt;<br>
com.test.StatusChangeWorkItemHandler.executeWorkItem(StatusChangeWorkItemHandler.java:37)<br>
&gt; <br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; ... <br>
&gt; <br>
&gt; I've attached another test case to illustrate the problem. <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Once again, my sincere thanks for helping me with this. <br>
&gt; <br>
&gt; Regards, <br>
&gt; <br>
&gt; Alan <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Kris Verlaenen &lt;kris.verlaenen@cs.kuleuven.be&gt; <br>
&gt; 29/10/2009 12:00 <br>
&gt; <br>
&gt; <br>
&gt; To<br>
&gt; Alan.Gairey@tessella.com <br>
&gt; cc<br>
&gt; Rules Users List &lt;rules-users@lists.jboss.org&gt; <br>
&gt; Subject<br>
&gt; Re: [rules-users] [droolsflow] Code-based constraints for EventWait<br>
&gt; nodes <br>
&gt; - is this possible?<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Alan,<br>
&gt; <br>
&gt; The cause of the rollback of the transaction is this:<br>
&gt; Caused by: java.io.NotSerializableException: com.test.SimpleFact<br>
&gt; <br>
&gt; The reason is that, if you use persistence for your session, the<br>
&gt; persister will try to save all runtime state of the engine. &nbsp;This<br>
&gt; does<br>
&gt; not only include process instances, but also rule-related state. &nbsp;By<br>
&gt; default, this also includes the data inserted in the memory. &nbsp;We<br>
&gt; support<br>
&gt; two strategies for storing this data: serialization of the data<br>
&gt; (default) or JPA-based storage of entities (by reference). &nbsp;In
this<br>
&gt; case, the persister is trying to serialize the test object you<br>
&gt; inserted<br>
&gt; and fails. &nbsp;Making it serializable should fix this.<br>
&gt; <br>
&gt; Kris<br>
&gt; <br>
&gt; Quoting Alan.Gairey@tessella.com:<br>
&gt; <br>
&gt; &gt; Kris,<br>
&gt; &gt; <br>
&gt; &gt; I've attached a simple test case (transaction manager, data<br>
&gt; source,<br>
&gt; &gt; etc. <br>
&gt; &gt; are configured via Spring). The error is thrown on line:<br>
&gt; &gt; <br>
&gt; &gt; ksession.insert(new SimpleFact());<br>
&gt; &gt; <br>
&gt; &gt; If this line is commented out, the rule flow executes without<br>
&gt; error.<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; Many thanks for looking at this.<br>
&gt; &gt; <br>
&gt; &gt; Regards,<br>
&gt; &gt; <br>
&gt; &gt; Alan<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; Kris Verlaenen &lt;kris.verlaenen@cs.kuleuven.be&gt; <br>
&gt; &gt; 28/10/2009 10:40<br>
&gt; &gt; <br>
&gt; &gt; To<br>
&gt; &gt; Alan.Gairey@tessella.com<br>
&gt; &gt; cc<br>
&gt; &gt; Rules Users List &lt;rules-users@lists.jboss.org&gt;<br>
&gt; &gt; Subject<br>
&gt; &gt; Re: [rules-users] [droolsflow] Code-based constraints for<br>
&gt; EventWait<br>
&gt; &gt; nodes <br>
&gt; &gt; - is this possible?<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; Alan,<br>
&gt; &gt; <br>
&gt; &gt; Could you send me the entire output / stack trace (as the rollback<br>
&gt; &gt; of<br>
&gt; &gt; the transaction is usually caused by another exception)?<br>
&gt; &gt; <br>
&gt; &gt; Or a simple test case that shows the error, so I can take a look?<br>
&gt; &gt; <br>
&gt; &gt; Thx,<br>
&gt; &gt; Kris<br>
&gt; &gt; <br>
&gt; &gt; Quoting Alan.Gairey@tessella.com:<br>
&gt; &gt; <br>
&gt; &gt; &gt; Kris,<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; After posting my last question, I quickly came to the same<br>
&gt; &gt; conclusion<br>
&gt; &gt; &gt; as <br>
&gt; &gt; &gt; you, so I'm now using a rule-based constraint in my EventWait<br>
&gt; &gt; node.<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; This however has presented a different problem. If I create
my<br>
&gt; &gt; &gt; session <br>
&gt; &gt; &gt; from JPAKnowledgeService, then when I try to insert my fact
into<br>
&gt; &gt; the<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; session, I get the following error:<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; bitronix.tm.internal.BitronixRollbackException: transaction
was<br>
&gt; &gt; &gt; marked as <br>
&gt; &gt; &gt; rollback only and has been rolled back<br>
&gt; &gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; at <br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:153)<br>
&gt; &gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; at <br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:96)<br>
&gt; &gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; at <br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:258)<br>
&gt; &gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; at <br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
org.drools.command.impl.CommandBasedStatefulKnowledgeSession.insert(CommandBasedStatefulKnowledgeSession.java:305)<br>
&gt; &gt; &gt; (Everything works fine if I create my session from the knowledge<br>
&gt; &gt; base<br>
&gt; &gt; &gt; - <br>
&gt; &gt; &gt; i.e. with no state persistence.)<br>
&gt; &gt; &gt; Prior to using a rule-based constraint (with no call to
<br>
&gt; &gt; &gt; CommandBasedStatefulKnowledgeSession.insert), the session<br>
&gt; created<br>
&gt; &gt; &gt; from <br>
&gt; &gt; &gt; JPAKnowledgeService worked OK.<br>
&gt; &gt; &gt; I'm using the default JPA configuration from the Drools<br>
&gt; &gt; documentation<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; (persisting to H2 database, etc.).<br>
&gt; &gt; &gt; Any ideas what might be causing the problem?<br>
&gt; &gt; &gt; Many thanks,<br>
&gt; &gt; &gt; Alan<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; Kris Verlaenen &lt;kris.verlaenen@cs.kuleuven.be&gt; <br>
&gt; &gt; &gt; 23/10/2009 03:00<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; To<br>
&gt; &gt; &gt; Rules Users List &lt;rules-users@lists.jboss.org&gt;,<br>
&gt; &gt; &gt; Alan.Gairey@tessella.com<br>
&gt; &gt; &gt; cc<br>
&gt; &gt; &gt; Rules Users List &lt;rules-users@lists.jboss.org&gt;<br>
&gt; &gt; &gt; Subject<br>
&gt; &gt; &gt; Re: [rules-users] [droolsflow] Code-based constraints for<br>
&gt; &gt; EventWait<br>
&gt; &gt; &gt; nodes <br>
&gt; &gt; &gt; - is this possible?<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; No, the constraint of an EventWait node (or the State node
in<br>
&gt; &gt; Drools<br>
&gt; &gt; &gt; 5.1) can only be rule-based. &nbsp;The reason for this is
that the<br>
&gt; rule<br>
&gt; &gt; &gt; engine knows when to re-evaluates rules (based on the evailable<br>
&gt; &gt; &gt; input).<br>
&gt; &gt; &gt; &nbsp;If you would use a code-based constraint, the engine
would have<br>
&gt; &gt; no<br>
&gt; &gt; &gt; idea<br>
&gt; &gt; &gt; when this code constraint might become true (if it was false
at<br>
&gt; &gt; the<br>
&gt; &gt; &gt; start). &nbsp;Only constant re-evaluation of the code constraint<br>
&gt; could<br>
&gt; &gt; &gt; achieve this (which would be tremendously inefficient).
&nbsp;Could<br>
&gt; you<br>
&gt; &gt; &gt; explain why you would like to have this behaviour? &nbsp;Maybe
there<br>
&gt; is<br>
&gt; &gt; &gt; an<br>
&gt; &gt; &gt; alternative way to model this.<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; To change the value of a variable from inside the process
(using<br>
&gt; &gt; an<br>
&gt; &gt; &gt; action), simply use kcontext.setVariable(name, value). &nbsp;We
do<br>
&gt; not<br>
&gt; &gt; &gt; recommend manually changing the value of a process variable
from<br>
&gt; &gt; &gt; outside<br>
&gt; &gt; &gt; the engine. &nbsp;Again, could you explain why you would
like to have<br>
&gt; &gt; &gt; this<br>
&gt; &gt; &gt; functionality?<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; Kris<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; Quoting Alan.Gairey@tessella.com:<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; &gt; Can the constraint for an EventWait node in a flow
be<br>
&gt; code-based<br>
&gt; &gt; &gt; &gt; (rather <br>
&gt; &gt; &gt; &gt; than rule-based)? The Eclipse plug-in (v 5.0.1) doesn't
allow<br>
&gt; &gt; this<br>
&gt; &gt; &gt; to<br>
&gt; &gt; &gt; &gt; be <br>
&gt; &gt; &gt; &gt; specified, unlike say for a Split node, although the
relevant<br>
&gt; &gt; XML<br>
&gt; &gt; &gt; can<br>
&gt; &gt; &gt; &gt; of <br>
&gt; &gt; &gt; &gt; course be edited.<br>
&gt; &gt; &gt; &gt; Trying to load such a process flow results in a<br>
&gt; &gt; &gt; NullPointerException,<br>
&gt; &gt; &gt; &gt; <br>
&gt; &gt; &gt; &gt; because the constraint is always interpreted as a rule.<br>
&gt; &gt; &gt; &gt; <br>
&gt; &gt; &gt; &gt; Ideally what I'd like to do is have an EventWait node
where<br>
&gt; the<br>
&gt; &gt; &gt; &gt; constraint <br>
&gt; &gt; &gt; &gt; tests the value of a process variable. This then leads
me to<br>
&gt; &gt; &gt; another<br>
&gt; &gt; &gt; &gt; <br>
&gt; &gt; &gt; &gt; question; is there a way of setting the value of a
process<br>
&gt; &gt; &gt; variable<br>
&gt; &gt; &gt; &gt; via <br>
&gt; &gt; &gt; &gt; the Drools Flow API?<br>
&gt; &gt; &gt; &gt; <br>
&gt; &gt; &gt; &gt; Thanks in advance for any help,<br>
&gt; &gt; &gt; &gt; <br>
&gt; &gt; &gt; &gt; Alan<br>
&gt; &gt; &gt; &gt; Tessella plc<br>
&gt; &gt; &gt; &gt; 26 The Quadrant, Abingdon Science Park, Abingdon, Oxfordshire,<br>
&gt; &gt; &gt; OX14<br>
&gt; &gt; &gt; &gt; 3YS<br>
&gt; &gt; &gt; &gt; E: Alan.Gairey@tessella.com, T: +44 (0)1235 555511,
F: +44<br>
&gt; &gt; (0)1235<br>
&gt; &gt; &gt; &gt; 553301<br>
&gt; &gt; &gt; &gt; www.tessella.com &nbsp; &nbsp;Registered in England
No. 1466429<br>
&gt; &gt; &gt; &gt; <br>
&gt; &gt; &gt; &gt; This message is commercial in confidence and may be<br>
&gt; privileged.<br>
&gt; &gt; It<br>
&gt; &gt; &gt; is<br>
&gt; &gt; &gt; &gt; <br>
&gt; &gt; &gt; &gt; intended for the addressee(s) only. Access to this
message by<br>
&gt; &gt; &gt; anyone<br>
&gt; &gt; &gt; &gt; else <br>
&gt; &gt; &gt; &gt; is unauthorized and strictly prohibited. If you have
received<br>
&gt; &gt; this<br>
&gt; &gt; &gt; &gt; message <br>
&gt; &gt; &gt; &gt; in error, please inform the sender immediately. Please
note<br>
&gt; that<br>
&gt; &gt; &gt; &gt; messages <br>
&gt; &gt; &gt; &gt; sent or received by the Tessella e-mail system may
be<br>
&gt; monitored<br>
&gt; &gt; &gt; and<br>
&gt; &gt; &gt; &gt; stored <br>
&gt; &gt; &gt; &gt; in an information retrieval system.<br>
&gt; &gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm<br>
&gt; &gt; &gt; <br>
&gt; &gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm<br>
&gt; [attachment &quot;drools-persistence-test.zip&quot; deleted by Alan<br>
&gt; Gairey/Tessella] <br>
&gt; _______________________________________________<br>
&gt; rules-users mailing list<br>
&gt; rules-users@lists.jboss.org<br>
&gt; https://lists.jboss.org/mailman/listinfo/rules-users<br>
&gt; <br>
&gt; <br>
<br>
<br>
<br>
<br>
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm<br>
</font></tt>
<br>