[rules-users] Object Referencing Error

Fnu Mahalakshmi FMahalakshmi at nyx.com
Thu Jun 3 18:33:05 EDT 2010


Hi,

I tried what you said but program goes into an infinite loop.
It does not break out of the when loop only.
I did exactly as you mentioned.
In the test information I put in a.type = "Prod"
And a.bObject(new B());
Any idea whats wrong??

Thanks,
M

-----Original Message-----
From: rules-users-bounces at lists.jboss.org [mailto:rules-users-bounces at lists.jboss.org] On Behalf Of rules-users-request at lists.jboss.org
Sent: Thursday, June 03, 2010 4:52 PM
To: rules-users at lists.jboss.org
Subject: rules-users Digest, Vol 43, Issue 15

Send rules-users mailing list submissions to
	rules-users at lists.jboss.org

To subscribe or unsubscribe via the World Wide Web, visit
	https://lists.jboss.org/mailman/listinfo/rules-users
or, via email, send a message with subject or body 'help' to
	rules-users-request at lists.jboss.org

You can reach the person managing the list at
	rules-users-owner at lists.jboss.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of rules-users digest..."


Today's Topics:

   1. Re: Object Referencing error: (Esteban Aliverti)


----------------------------------------------------------------------

Message: 1
Date: Thu, 3 Jun 2010 17:51:10 -0300
From: Esteban Aliverti <esteban.aliverti at gmail.com>
Subject: Re: [rules-users] Object Referencing error:
To: Rules Users List <rules-users at lists.jboss.org>
Message-ID:
	<AANLkTimeZIJ5VfMTBESLFJIWoc_4MEZSXbKMIXAvJRiC at mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

You can't modify bobject, becuase it doesn't exist inside the session. You
just created it a few lines above. Maybe you need an insert() or maybe you
need the bobject reference from the LHS. Something like this:

*rule* "prod"



      *when*

         $a :A(Type == "Prod" , objectB != "")

      *then*

   B bobject = *new* B();

         $a.getObjectB().setType( "Prod" );

         $a.getObjectB().setId($a.getNumber().getId());

         *update*($a);

*      end*

Note that you need to update $a and not B, because A is the inserted Fact in
your session.

Best,


2010/6/3 Fnu Mahalakshmi <FMahalakshmi at nyx.com>

>  Hi,
>
>
>
> I am getting the following error when I try to do complex object
> referencing in drools:
>
> My class:
>
> A{
>
> String Type;
>
> B objectb;
>
> //getters and setters for above
>
> }
>
>
>
> My rules:
>
>
>
> *rule* "prod"
>
>
>
>       *when*
>
>      $a :A(Type == "Prod" , objectB != "")
>
>       *then*
>
> B bobject = *new* B();
>
>      bobject.setType( "Prod" );
>
>      bobject.setId($a.getNumber().getId());
>
>      *update*(bobject);
>
>
>
> *end*
>
> * *
>
> *I want to basically output a file which has updated values of B (type,
> Id)
>
> *
>
> * *
>
> *Error:*
>
> *org.drools.spi.ConsequenceException*: *org.drools.FactException*: Update
> error: handle not found for object: com.org.Ip at f42ad0. Is it in the
> working memory?
>
>       at
> org.drools.base.DefaultConsequenceExceptionHandler.handleException(*
> DefaultConsequenceExceptionHandler.java:13*)
>
>       at org.drools.common.DefaultAgenda.fireActivation(*
> DefaultAgenda.java:558*)
>
>       at org.drools.common.DefaultAgenda.fireNextItem(*
> DefaultAgenda.java:518*)
>
>       at org.drools.common.AbstractWorkingMemory.fireAllRules(*
> AbstractWorkingMemory.java:475*)
>
>       at org.drools.common.AbstractWorkingMemory.fireAllRules(*
> AbstractWorkingMemory.java:439*)
>
>       at com.org.DroolsTest.main(*DroolsTest.java:30*)
>
> Caused by: *org.drools.FactException*: Update error: handle not found for
> object: com.org.Ip at f42ad0. Is it in the working memory?
>
>       at org.drools.base.DefaultKnowledgeHelper.update(*
> DefaultKnowledgeHelper.java:100*)
>
>       at com.org.Rule_Prod_Ip_0.consequence(*Rule_Prod_Ip_0.java:10*)
>
>       at com.org.Rule_Prod_Ip_0ConsequenceInvoker.evaluate(*
> Rule_Prod_Ip_0ConsequenceInvoker.java:22*)
>
>       at org.drools.common.DefaultAgenda.fireActivation(*
> DefaultAgenda.java:554*)
>
>       ... 4 more
>
>
>
> Please help! I am very new to drools! Not able to figure out why this
> error:
>
>
>
> I am using eclipse and working on Windows machine. Error above was
> generated on eclipse console.
>
>
>
> Thank you.
>
>
>
> M
>
> ------------------------------
>
> *Please consider the environment before printing this email.*
>
> *Visit our website at http://www.nyse.com
> *****************************************************************************
>
> Note: The information contained in this message and any attachment to it is
> privileged, confidential and protected from disclosure. If the reader of
> this message is not the intended recipient, or an employee or agent
> responsible for delivering this message to the intended recipient, you are
> hereby notified that any dissemination, distribution or copying of this
> communication is strictly prohibited. If you have received this
> communication in error, please notify the sender immediately by replying to
> the message, and please delete it from your system. Thank you. NYSE
> Euronext. *
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>


-- 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Esteban Aliverti
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100603/f0f29ddf/attachment.html 

------------------------------

_______________________________________________
rules-users mailing list
rules-users at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


End of rules-users Digest, Vol 43, Issue 15
*******************************************
Please consider the environment before printing this email.

Visit our website at http://www.nyse.com

****************************************************

Note:  The information contained in this message and any attachment to it is privileged, confidential and protected from disclosure.  If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited.  If you have received this communication in error, please notify the sender immediately by replying to the message, and please delete it from your system.  Thank you.  NYSE Euronext.





More information about the rules-users mailing list