I think Alexander Lamb wrote:
[Charset iso-8859-1 unsupported, filtering to ASCII...]
> Well,
> 
> The problem is that I populate the value from the Java side, using an
> accessor method.
> 

i.e., the value is null when you first definstance the object. This
changes everything, because technically, JavaBeans properties aren't
allowed to contain null.


> Also, I get the following message even before selectedCompleterResponse has
> a value:

Yes, sure, because ?r contains the symbol "nil". Jess always tries to
be as helpful as possible, and here it's trying to call the function
getKeyCode on the java.lang.String "nil", and failing -- hence the
error. 

If you're going to be passing "invalid" Beans with null properties to
definstance, then all your conditionals will need to take this into
account -- i.e.,

        (slotname ?r&:(and (neq ?r nil) (eq (get ?r keyCode) whatever)))

The "and" function does short-circuit evaluation so this is safe.

> 
> Async Error: Jess reported an error in routine get
>     while executing (get ?r keyCode)
>     while executing (eq "ASP" (get ?r keyCode))
>     while executing rule LHS (TEQ)
>     while executing rule LHS (TEQ)
>     while executing rule LHS (TECT).
>   Message: No such property: keyCode.
> 
> What happens in that case if selectedCompleterResponse is null (I was
> assuming it would not try to go further)?
> 
> Alex
> 
> On 3.10.2002 16:39, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote:
> 
> > Whether there is a defclass or not is irrelevant. Only one thing
> > matters here: that ?r is a Java object that has a method named
> > getKeyCode(). If it isn't, then you'll get an exception. If it is,
> > then this will work.
> > 
> > Now, since you're getting an error, and since you mention a defclass,
> > it's possible that perhaps you haven't stored the actual Java object
> > in the selectedCompleterResponse slot, but instead you put another
> > jess.Fact object in there -- a shadow Fact which -refers- to an an
> > object that has a getKeyCode method. (Only you know how the
> > selectedCompleterResponse slot of the OrmedComplex fact was populated,
> > or what the data type of the Java object is, as we haven't seen your
> > whole application.) If you're storing a Fact in there, rather than the
> > Java object, then you've got to use a Fact method to get the value you
> > want -- i.e., something like
> > 
> >  ;; Assuming ?r holds a jess.Fact object with a "keyCode" slot
> >  (selectedCompleterResponse ?r&:(eq "ASP" (?r getSlotValue keyCode)))
> > 
> > So you understand the difference?
> > 
> > 
> > ---------------------------------------------------------
> > Ernest Friedman-Hill
> > Distributed Systems Research        Phone: (925) 294-2154
> > Sandia National Labs                FAX:   (925) 294-2234
> > Org. 8920, MS 9012                  [EMAIL PROTECTED]
> > PO Box 969                  http://herzberg.ca.sandia.gov
> > Livermore, CA 94550
> > 
> > --------------------------------------------------------------------
> > To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
> > in the BODY of a message to [EMAIL PROTECTED], NOT to the list
> > (use your own address!) List problems? Notify [EMAIL PROTECTED]
> > --------------------------------------------------------------------
> > 
> 
> -- 
> Alexander Lamb 
> Groupe Serveurs Applicatifs
> Division d'Informatique Midicale
> Htpitaux Universitaires de Genhve
> 21 rue Micheli-du-Crest
> CH-1211 Genhve 4 / Switzerland
> Tel: +41-22 372.48.46 Fax: +41-22 382.86.80
> [EMAIL PROTECTED] / http://www.hcuge.ch
> 
> --------------------------------------------------------------------
> To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
> in the BODY of a message to [EMAIL PROTECTED], NOT to the list
> (use your own address!) List problems? Notify [EMAIL PROTECTED]
> --------------------------------------------------------------------
> 



---------------------------------------------------------
Ernest Friedman-Hill  
Distributed Systems Research        Phone: (925) 294-2154
Sandia National Labs                FAX:   (925) 294-2234
Org. 8920, MS 9012                  [EMAIL PROTECTED]
PO Box 969                  http://herzberg.ca.sandia.gov
Livermore, CA 94550

--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list
(use your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------

Reply via email to