<br>&nbsp;&nbsp; Well, I&#39;m not sure why are you constraining your rule using the class Object. What is happening is that the engine always inserts a fact into the engine known as InitialFact, that as all objects in java, is a subclass of Object, and that is why the rule fires.
<br>&nbsp;&nbsp; If instead of Object, you use a different class, like Integer for instance, to constrain your rule, you will get the behavior you are looking  for.<br><br>&nbsp;&nbsp; []s<br>&nbsp;&nbsp; Edson<br><br><div><span class="gmail_quote">2007/8/22, Dean Jones &lt;
<a href="mailto:dean.m.jones@gmail.com">dean.m.jones@gmail.com</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi,<br><br>I have the following simple rulebase:
<br><br>package org.drools.examples<br>rule &quot;Hello World&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o : Object( )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&quot;Hello world (o=&quot; + o + &quot;)&quot;);<br>end<br>
rule &quot;Goodbye World&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not Object( )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&quot;Goodbye cruel world&quot;);<br>end<br><br>and the following code:<br><br>public class TestReadRuleFile {
<br><br>public static void main(String[] args) throws Exception {<br>&nbsp;&nbsp;PackageBuilder builder = new PackageBuilder();<br>&nbsp;&nbsp;builder.addPackageFromDrl(<br>&nbsp;&nbsp;&nbsp;&nbsp;new InputStreamReader(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestReadRuleFile.class.getResourceAsStream
(&quot;test.drl&quot;)));<br>&nbsp;&nbsp;Package pkg = builder.getPackage();<br>&nbsp;&nbsp;RuleBase rulebase = RuleBaseFactory.newRuleBase();<br>&nbsp;&nbsp;rulebase.addPackage(pkg);<br>&nbsp;&nbsp;StatefulSession session = rulebase.newStatefulSession();<br>&nbsp;&nbsp;
session.fireAllRules();<br>}<br><br>}<br><br>which produces the following output:<br><br>Hello world (o=org.drools.reteoo.InitialFactImpl@4dde85f0)<br><br>I expected the &quot;Goodbye World&quot; rule to fire, as there should not be
<br>any Objects in the working memory. If I change my code to insert an<br>object into the working memory as follows:<br><br>&nbsp;&nbsp;session.insert(new Object());<br><br>I now get the following output:<br><br>Hello world (o=org.drools.reteoo.InitialFactImpl@4dde85f0
)<br>Hello world (o=java.lang.Object@17ba38f)<br><br>In this case, I expected the &quot;Hello World&quot; rule to fire only once. Any<br>thoughts on what I&#39;m doing wrong here?<br><br>Thanks,<br><br>Dean.<br>_______________________________________________
<br>rules-users mailing list<br><a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br><a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users
</a><br></blockquote></div><br><br clear="all"><br>-- <br>&nbsp;&nbsp;Edson Tirelli<br>&nbsp;&nbsp;Software Engineer - JBoss Rules Core Developer<br>&nbsp;&nbsp;Office: +55 11 3529-6000<br>&nbsp;&nbsp;Mobile: +55 11 9287-5646<br>&nbsp;&nbsp;JBoss, a division of Red Hat @ 
<a href="http://www.jboss.com">www.jboss.com</a>