Just a guess: in your consequence code, Vector v could be null.
   
  Yuesong

Mitch Christensen <[EMAIL PROTECTED]> wrote:
  Hey,



I was cranking along writing rules when all of a sudden JUnit reported an
NPE (see below) during WorkingMemory.fireAllRules(). The rule referenced in
the stack trace is as follows,



rule "Add report periods to the FEQueryList"

when

tr : TimeRange(level == TimeRange.FE, durationInMillis > 0 )

ctx : HashMap()

eval(ctx.containsKey("FEQueryList"))

then

System.out.println("Adding FE period to the list");

Vector v = (Vector)ctx.get("FEQueryList");

HashMap m = new HashMap();

v.add(m);

m.put("st", new Long(tr.getStartTime()));

m.put("et", new Long(tr.getEndTime()));

m.put("relation", "PMI_FE");

retract(tr);

end



The NPE occurs on the retract() on the last line of the consequence.



I'm not exactly sure what to do about it. I suppose I could look at the
code.



Any suggestions?



Thanks.

-MItch



org.drools.spi.ConsequenceException: java.lang.NullPointerException

at org.drools.common.Agenda.fireActivation(Agenda.java:327)

at org.drools.common.Agenda.fireNextItem(Agenda.java:303)

at
org.drools.reteoo.WorkingMemoryImpl.fireAllRules(WorkingMemoryImpl.java:248)

at
org.drools.reteoo.WorkingMemoryImpl.fireAllRules(WorkingMemoryImpl.java:261)

at
com.packetmotion.trinity.gsm.report.RuleEngineTest.testContextBuilderFe2Dail
y(RuleEngineTest.java:358)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)

at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at junit.framework.TestCase.runTest(TestCase.java:154)

at junit.framework.TestCase.runBare(TestCase.java:127)

at junit.framework.TestResult$1.protect(TestResult.java:106)

at junit.framework.TestResult.runProtected(TestResult.java:124)

at junit.framework.TestResult.run(TestResult.java:109)

at junit.framework.TestCase.run(TestCase.java:118)

at junit.framework.TestSuite.runTest(TestSuite.java:208)

at junit.framework.TestSuite.run(TestSuite.java:203)

at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRu
nner.java:481)

at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.
java:347)

at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner
.java:197)

Caused by: java.lang.NullPointerException

at
org.drools.reteoo.beta.DefaultRightMemory.remove(DefaultRightMemory.java:64)

at org.drools.reteoo.BetaMemory.remove(BetaMemory.java:150)

at org.drools.reteoo.NotNode.retractObject(NotNode.java:178)

at
org.drools.reteoo.ObjectSource.propagateRetractObject(ObjectSource.java:128)

at
org.drools.reteoo.ObjectTypeNode.retractObject(ObjectTypeNode.java:152)

at org.drools.reteoo.Rete.retractObject(Rete.java:153)

at
org.drools.reteoo.RuleBaseImpl.retractObject(RuleBaseImpl.java:272)

at
org.drools.reteoo.WorkingMemoryImpl.retractObject(WorkingMemoryImpl.java:601
)

at
org.drools.base.DefaultKnowledgeHelper.retractObject(DefaultKnowledgeHelper.
java:87)

at
com.packetmotion.trinity.sqlgen.ContextBuilder.Rule_Add_report_periods_to_th
e_FEQueryList_0.consequence(Rule_Add_report_periods_to_the_FEQueryList_0.jav
a:23)

at
com.packetmotion.trinity.sqlgen.ContextBuilder.Rule_Add_report_periods_to_th
e_FEQueryList_0ConsequenceInvoker.evaluate(Rule_Add_report_periods_to_the_FE
QueryList_0ConsequenceInvoker.java:22)

at org.drools.common.Agenda.fireActivation(Agenda.java:325)

... 19 more





                
---------------------------------
Yahoo! Messenger with Voice. PC-to-Phone calls for ridiculously low rates.

Reply via email to