[rules-users] Update error: handle not found for object

Edson Tirelli tirelli at post.com
Thu Aug 2 11:45:18 EDT 2007


   Hi,

   Please note that java.lang.Integer is an immutable class. So, what is
happening when you do:

unEntier++;
update(unEntier);

   is that java is actually doing is creating another, different
java.lang.Integer object (using auto-boxing/unboxing).
   What you need to do is:

rule "incrementation"
        no-loop
        when
                unEntier : java.lang.Integer()
        then
                retract( unEntier );
                unEntier++;
                System.out.println("incrementation firing...");
                insert(unEntier);
end


    []s
    Edson

2007/8/2, hypnosat7 <ablarbi at yahoo.fr>:
>
>
> hi I have an exception after using an update
>
>   This is my rule :
>
> package packageDrlTest
>
> #list any import classes here.
> import java.lang.Integer;
>
>
> #declare any global variables here
>
> rule "incrementation"
>         no-loop
>         when
>                 unEntier : java.lang.Integer()
>         then
>                 unEntier++;
>                 System.out.println("incrementation firing...");
>                 update(unEntier);
>
> end
>
>
> when I execute my rule on this list of facts :
>
> List integerList = new ArrayList();
> integerList.add(Integer.valueOf(1));
> for (Object fact : integerList )
> {
>         session.insert(fact);  // session is a StatefulMemory
> }
>
> Update error: handle not found for object: 2. Is it in the working memory?
>
> détails :
>
> incrementation firing...
> org.drools.FactException: Update error: handle not found for object: 2. Is
> it in the working memory?
>         at
> org.drools.base.DefaultKnowledgeHelper.update(DefaultKnowledgeHelper.java
> :93)
>         at
> packageDrlTest.Rule_incrementation_0.consequence
> (Rule_incrementation_0.java:9)
>         at
> packageDrlTest.Rule_incrementation_0ConsequenceInvoker.evaluate
> (Rule_incrementation_0ConsequenceInvoker.java:22)
>         at org.drools.common.DefaultAgenda.fireActivation(
> DefaultAgenda.java:545)
>         at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java
> :509)
>         at
> org.drools.common.AbstractWorkingMemory.fireAllRules(
> AbstractWorkingMemory.java:430)
>         at
> org.drools.common.AbstractWorkingMemory.fireAllRules(
> AbstractWorkingMemory.java:392)
> --
> View this message in context:
> http://www.nabble.com/Update-error%3A-handle-not-found-for-object-tf4206369.html#a11965297
> Sent from the drools - user mailing list archive at Nabble.com.
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>



-- 
  Edson Tirelli
  Software Engineer - JBoss Rules Core Developer
  Office: +55 11 3529-6000
  Mobile: +55 11 9287-5646
  JBoss, a division of Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070802/393b95ae/attachment.html 


More information about the rules-users mailing list