[jboss-svn-commits] JBL Code SVN: r18970 - labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Mar 14 10:01:14 EDT 2008


Author: mark.proctor at jboss.com
Date: 2008-03-14 10:01:14 -0400 (Fri, 14 Mar 2008)
New Revision: 18970

Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
JBRULES-1415 Certain uses of from causes NullPointerException in WorkingMemoryLogger
-fixed nullpointer in logger for derived facthandles.

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-03-14 13:58:03 UTC (rev 18969)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-03-14 14:01:14 UTC (rev 18970)
@@ -82,6 +82,7 @@
 import org.drools.WorkingMemory;
 import org.drools.Cheesery.Maturity;
 import org.drools.audit.WorkingMemoryFileLogger;
+import org.drools.audit.WorkingMemoryInMemoryLogger;
 import org.drools.base.ClassObjectFilter;
 import org.drools.common.AbstractWorkingMemory;
 import org.drools.common.InternalFactHandle;
@@ -1258,7 +1259,46 @@
         Package pkg = builder.getPackage();
         pkg.checkValidity();
     }
+    
+    /**
+     * @see JBRULES-1415 Certain uses of from causes NullPointerException in WorkingMemoryLogger
+     */
+    public void testFromDeclarationWithWorkingMemoryLogger() throws Exception {
+        String rule = "package org.test;\n";
+        rule += "import org.drools.Cheesery\n";
+        rule += "import org.drools.Cheese\n";
+        rule += "global java.util.List list\n";
+        rule += "rule \"Test Rule\"\n";
+        rule += "when\n";
+        rule += "    $cheesery : Cheesery()\n";
+        rule += "    Cheese( $type : type) from $cheesery.cheeses\n";
+        rule += "then\n";
+        rule += "    list.add( $type );\n";
+        rule += "end";
 
+        final PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( new StringReader( rule ));
+        final Package pkg = builder.getPackage();
+
+        final RuleBase ruleBase = getRuleBase();
+        ruleBase.addPackage(pkg);
+        final StatefulSession session = ruleBase.newStatefulSession();
+        
+        WorkingMemoryInMemoryLogger logger = new WorkingMemoryInMemoryLogger( session );
+        List list = new ArrayList();
+        session.setGlobal( "list", list );
+        
+        Cheesery cheesery = new Cheesery();
+        cheesery.addCheese(  new Cheese("stilton", 22) );
+        
+        session.insert( cheesery );
+        
+        session.fireAllRules();                 
+        
+        assertEquals( 1, list.size());
+        assertEquals( "stilton", list.get(0));
+}    
+
     public void testWithInvalidRule() throws Exception {
         final PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "invalid_rule.drl" ) ) );




More information about the jboss-svn-commits mailing list