[rules-users] Problems with condition Rules

javier hector javier.hector at gmail.com
Mon Aug 14 06:55:03 EDT 2006


I'm using JBoos Drools 3.0.
I'm using Java 5

I have the following classes

package org.unlp.model;

import java.util.ArrayList;
import java.util.List;

/**
 * @author Jvelilla
 *
 */
public class Curso {
    ...
    // describe el numero total de cuotas del curso
    protected Integer cuotas;

    // Un curso de postgrado tiene una lista de materias
    protected List<Materia> materias;

    // ~ Constructors ================================================
   ...
    // ~ Methods ================================================
    public void setCuotas(Integer cuotas) {
        this.cuotas = cuotas;
    }

    ...

    public Integer getCuotas() {
        return cuotas;
    }

    ...
}


package org.unlp.model;

/**
* @author Jvelilla
*
*/
public class Estudiante extends Persona {

    // restriccion un estudiante solo se puede
    // inscribir en un curso.
    // ejemplo: Mg. en Ingenieria de Sotware

    protected Curso inscripcion;

    protected int cuotasPagas;
    //~ Methods      ================================================
    public void setInscripcion(Curso inscripcion) {
        this.inscripcion = inscripcion;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }


    public void setCuotasPagas(int cuotas_pagas) {
        this.cuotasPagas = cuotas_pagas;
    }

    public Curso getInscripcion() {
        return inscripcion;
    }


    public int getCuotasPagas() {
        return cuotasPagas;
    }

}


My Rule is



#created on: 13/08/2006
package org.unlp.model

#list any import classes here.
import org.unlp.model.Estudiante;
#declare any global variables here

rule "Descuento por pago al contado"

    when
            alumno : Estudiante (cuota : cuotasPagas, x: inscripcion -> (
x.getCuotas().intValue() > cuota.intValue() ) )
    then
            System.out.println( "El alumno: [" + alumno.getNombre()+ "]
recibira un descuento por pago al contado del 25%");
            System.out.println( "La cantindad de cuotas es  [" +
alumno.getCuotasPagas()+ "] ");

end

But I obtain the followin error

org.drools.RuntimeDroolsException: java.lang.NullPointerException
    at org.drools.rule.PredicateConstraint.isAllowed(Unknown Source)
    at org.drools.common.BetaNodeBinder.isAllowed(Unknown Source)
    at org.drools.reteoo.LeftInputAdapterNode.assertObject(Unknown Source)
    at org.drools.reteoo.ObjectSource.propagateAssertObject(Unknown Source)
    at org.drools.reteoo.ObjectTypeNode.assertObject(Unknown Source)
    at org.drools.reteoo.Rete.assertObject(Unknown Source)
    at org.drools.reteoo.ReteooRuleBase.assertObject(Unknown Source)
    at org.drools.reteoo.ReteooWorkingMemory.doAssertObject(Unknown Source)
    at org.drools.common.AbstractWorkingMemory.assertObject(Unknown Source)
    at org.drools.common.AbstractWorkingMemory.assertObject(Unknown Source)
    at org.unlp.model.BusinessRulesTest.main(BusinessRulesTest.java:45)
Caused by: java.lang.NullPointerException
    at
org.unlp.model.Rule_Descuento_por_pago_al_contado_0Predicate0Invoker.evaluate
(Rule_Descuento_por_pago_al_contado_0Predicate0Invoker.java:13)
    ... 11 more

What do you suggest I do ?

-- 
"Component design should be the Formula-1 racing of software engineering."
Bertrand Meyer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20060814/ac59811b/attachment.html 


More information about the rules-users mailing list