Hi,

How do you assert / modify objects with the Java Annotations Semantic Module ?

I've tried following the example on the web using the "knowledge helper", but I 
get a bunch of null exceptions.

My code looks like:


        @Consequence
        public void consequence(KnowledgeHelper knowledgeHelper, 
@Fact("Charge") Charge charge) {
            System.out.println("Adding Charge to item :" + charge.parent);
            charge.parent.shippingCharges.add(charge);
            
            try {
                        knowledgeHelper.modifyObject(charge.parent);
                } catch (Exception  e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        }


The Exception that I see is:

java.lang.NullPointerException
        at 
org.drools.reteoo.WorkingMemoryImpl.removeObject(WorkingMemoryImpl.java:484)
        at 
org.drools.reteoo.WorkingMemoryImpl.modifyObject(WorkingMemoryImpl.java:520)
        at 
org.drools.spi.DefaultKnowledgeHelper.modifyObject(DefaultKnowledgeHelper.java:77)
        at 
com.amazon.shipping.rules.DefaultShippingRules$EnforceChargeRule.consequence(DefaultShippingRules.java:79)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at 
org.drools.spring.pojorule.RuleReflectMethod.invokeMethod(RuleReflectMethod.java:83)
        at 
org.drools.spring.pojorule.PojoConsequence.invoke(PojoConsequence.java:67)
        at org.drools.reteoo.AgendaItem.fire(AgendaItem.java:168)
        at org.drools.reteoo.Agenda.fireNextItem(Agenda.java:476)
        at 
org.drools.reteoo.WorkingMemoryImpl.fireAllRules(WorkingMemoryImpl.java:256)
        at 
org.drools.reteoo.WorkingMemoryImpl.fireAllRules(WorkingMemoryImpl.java:271)
                        :
                        :
                        :
                        :
                        :


Any ideas ?

Regards,
Alan Ho

Reply via email to