> Hi,
>
Sorry, the previous mail was sent prematurely.
> There seems to be an issue with simple patterns and non initialized
> slots derived from Java Beans.
>
> I have the following class and a clp:
>
> public class Slots {
> private Short age;
> public Slots() {
> // age = (short) 1;
> }
> public Short getAge() {
> return age;
> }
> public void setAge(Short age) {
> this.age = age;
> }
> }
>
> (import Slots)
> (deftemplate Slots
> (declare (from-class Slots)))
>
> (defrule rule
> (Slots { (age > 0)} )
> =>
> (printout t "age must not be null" crlf)
> )
>
> (bind ?sl (new Slots))
> (add ?sl)
> (run)
>
> If the age member initialized, it runs fine. If it is not, Jess throws
> an exception.
>
> Jess reported an error in routine >
> while executing (> ?__synth0(0,0,-1) 0)
> while executing rule LHS (TEQ)
> while executing rule LHS (TECT)
> while executing (add ?sl).
> Message: compareTo threw an exception.
> Program text: ( add ?sl ) at line 12 in file D:\temp\slot.clp.
>
> Nested exception is:
> java.lang.Integer cannot be cast to java.lang.String
>
> Shouldn't Jess fail the test when the slot is not initialized?
>
> Son Nguyen
>