I wish we had a way to verify is global vars are set before firing... I
tried, but couldn't really work it out... as it will show up like that.

On 4/26/06, Edson Tirelli <[EMAIL PROTECTED]> wrote:
>
>
>    Charles,
>
>    Are you setting your global list in the working memory?
>
> workingMemory.setGlobal( "list", new ArrayList() ) ;
>
>    []s
>    Edson
>
> Charles Lee wrote:
>
> > Hi,
> >
> > I have written a simple rule:
> >
> > #list any import classes here.
> > import test.Person
> >
> > rule "check pete"
> >     when
> >         fet : Person( name == "pete");
> >     then
> >         System.out.println("fet name " + fet.getName());
> > end
> >
> >
> > When I run this it passes;
> >
> > But If I run the same rule but in the RHS I add the person to the
> > list,  like so:
> >
> > #list any import classes here.
> > import test.Person
> >
> >
> > #declare any global variables here
> > global java.util.List list
> >
> >
> > rule "check pete"
> >     when
> >         fet : Person( name == "pete");
> >     then
> >         list.add( fet );
> > end
> >
> > I am getting the following error
> >
> > org.drools.spi.ConsequenceException: java.lang.NullPointerException
> >     at org.drools.common.Agenda.fireActivation(Agenda.java:316)
> >     at org.drools.common.Agenda.fireNextItem(Agenda.java:290)
> >     at
> > org.drools.reteoo.WorkingMemoryImpl.fireAllRules(WorkingMemoryImpl.java
> :253)
> >
> >     at
> > org.drools.reteoo.WorkingMemoryImpl.fireAllRules(WorkingMemoryImpl.java
> :266)
> >
> >     at client.test.RuleBootStrap.runRules(RuleBootStrap.java:51)
> >     at client.test.RuleTest.testGetEmbo(RuleTest.java:10)
> >     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:585)
> >     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(
> RemoteTestRunner.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
> > uk.ac.ebi.submission.rules.Rule_add_new_gene_symbol_0.consequence
> (Rule_add_new_gene_symbol_0.java:6)
> >
> >     at
> >
> uk.ac.ebi.submission.rules.Rule_add_new_gene_symbol_0ConsequenceInvoker.evaluate
> (Rule_add_new_gene_symbol_0ConsequenceInvoker.java:21)
> >
> >     at org.drools.common.Agenda.fireActivation(Agenda.java:313)
> >     ... 20 more
> >
> > Any ideas?
> >
> > Thanks in advance
> >
> >
>
>

Reply via email to