Hello all,<br><br>Could this unfixed JIRA <a href="https://jira.jboss.org/jira/browse/GUVNOR-354">https://jira.jboss.org/jira/browse/GUVNOR-354</a> be related to this?<br><br>I am inserting a single object via JSON and it fires twice.<br>

<br clear="all">Regards,<br>Prem<br>
<br><br><div class="gmail_quote">On Wed, Jul 1, 2009 at 9:54 AM, Jaroslaw Kijanowski <span dir="ltr">&lt;<a href="mailto:kijanowski@gmail.com">kijanowski@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<a href="https://jira.jboss.org/jira/browse/JBRULES-2154" target="_blank">https://jira.jboss.org/jira/browse/JBRULES-2154</a><br>
<br>
Thanks.<br>
<br>
Edson Tirelli wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">
<br>
     Jarowslaw,<br>
<br>
     Could you please open a JIRA for this. I need to investigate.<br>
     Thanks,<br>
<br>
     Edson<br>
<br></div>
2009/7/1 Jaroslaw Kijanowski &lt;<a href="mailto:kijanowski@gmail.com" target="_blank">kijanowski@gmail.com</a> &lt;mailto:<a href="mailto:kijanowski@gmail.com" target="_blank">kijanowski@gmail.com</a>&gt;&gt;<div><div></div>

<div class="h5"><br>
<br>
    Hi,<br>
     I&#39;ve configured my knowledge base to use the EQUALITY assertion<br>
    behaviour.<br>
    When I insert two equal facts into the session, only one gets<br>
    processed (objects and their fact handles are equal).<br>
    However when I insert two equal facts via streams, my rule fires<br>
    twice (objects are equal, but their fact handles are not). Isn&#39;t<br>
    equality assertion behaviour supported when using streams?<br>
<br>
    Here&#39;s my rule and test class:<br>
<br>
    package com.sample<br>
    import com.sample.Message;<br>
    declare Message<br>
     @role( event )<br>
     @timestamp( time )<br>
    end<br>
<br>
    rule &quot;r&quot;<br>
    when<br>
     Message( $i:i) //from entry-point &quot;myStream&quot;<br>
    then<br>
     System.out.println( $i );<br>
    end<br>
<br>
    +++++++++++++++++++++++++++++++++++++++++<br>
<br>
    public class Message {<br>
<br>
           private int i;<br>
           private Date time;<br>
    //getters, setters, hashcode, equals, constructor<br>
    }<br>
<br>
    +++++++++++++++++++++++++++++++++++++++++<br>
<br>
    public class DroolsTest {<br>
     public static final void main(String[] args) {<br>
       try {<br>
         KnowledgeBase kbase = readKnowledgeBase();<br>
         StatefulKnowledgeSession ksession =<br>
    kbase.newStatefulKnowledgeSession();<br>
<br>
         //WorkingMemoryEntryPoint stream =<br>
    ksession.getWorkingMemoryEntryPoint(&quot;myStream&quot;);<br>
<br>
         Date d = new Date();<br>
         Message message1 = new Message(1,d);<br>
         FactHandle fh1 = ksession.insert(message1);<br>
         //FactHandle fh1 = stream.insert(message1);<br>
         Message message2 = new Message(1,d);<br>
         FactHandle fh2 = ksession.insert(message2);<br>
         //FactHandle fh2 = stream.insert(message2);<br>
<br>
         if (message1.equals(message2) &amp;&amp; fh1.equals(fh2)){<br>
           System.out.println(&quot;equal&quot;);<br>
         }<br>
         ksession.fireAllRules();<br>
       } catch (Throwable t) {<br>
         t.printStackTrace();<br>
       }<br>
     }<br>
<br>
     private static KnowledgeBase readKnowledgeBase() throws Exception {<br>
       KnowledgeBuilder kbuilder =<br>
    KnowledgeBuilderFactory.newKnowledgeBuilder();<br>
       kbuilder.add(ResourceFactory.newClassPathResource(&quot;Sample.drl&quot;),<br>
    ResourceType.DRL);<br>
       if (kbuilder.getErrors().size() &gt; 0) {<br>
         throw new IllegalArgumentException(&quot;Could not parse knowledge.&quot;);<br>
       }<br>
       KnowledgeBaseConfiguration kbaseConfig =<br>
    KnowledgeBaseFactory.newKnowledgeBaseConfiguration();<br>
       kbaseConfig.setOption(AssertBehaviorOption.EQUALITY);<br>
       kbaseConfig.setOption(EventProcessingOption.STREAM);<br>
       kbaseConfig.setOption(RemoveIdentitiesOption.YES);<br>
<br>
       KnowledgeBase kbase =<br>
    KnowledgeBaseFactory.newKnowledgeBase(kbaseConfig);<br>
       kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());<br>
       return kbase;<br>
     }<br>
    }<br>
<br>
    +++++++++++++++++++++++++++++++++++++++++<br>
<br>
    Thanks,<br>
     Jarek<br>
    _______________________________________________<br>
    rules-users mailing list<br></div></div>
    <a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a> &lt;mailto:<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>&gt;<div class="im">

<br>
    <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br>
<br>
<br>
<br>
-- <br>
 Edson Tirelli<br>
 JBoss Drools Core Development<br></div>
 JBoss by Red Hat @ <a href="http://www.jboss.com" target="_blank">www.jboss.com</a> &lt;<a href="http://www.jboss.com" target="_blank">http://www.jboss.com</a>&gt;<br>
<br>
<br>
------------------------------------------------------------------------<div class="im"><br>
<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</div></blockquote><div><div></div><div class="h5">
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</div></div></blockquote></div><br>