[jboss-svn-commits] JBL Code SVN: r15731 - in labs/jbossrules/trunk/drools-compiler/src/test: java/org/drools/integrationtests and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Oct 10 16:24:28 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-10-10 16:24:28 -0400 (Wed, 10 Oct 2007)
New Revision: 15731

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Attribute.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_NullFieldOnCompositeSink.drl
Removed:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/helloworld/
Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Message.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/HelloWorld.drl
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_EffectiveDate.drl
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ExplicitAnd.drl
Log:
JBRULES-1264 NPE at BaseObjectClassFieldExtractor.getLongValue with null fields
-Added fix and integration test

Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Attribute.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Attribute.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Attribute.java	2007-10-10 20:24:28 UTC (rev 15731)
@@ -0,0 +1,14 @@
+/**
+ * 
+ */
+package org.drools;
+
+public class Attribute
+{
+
+    public Integer getValue()
+    {
+        return null;
+    }
+
+}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Message.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Message.java	2007-10-10 20:24:15 UTC (rev 15730)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Message.java	2007-10-10 20:24:28 UTC (rev 15731)
@@ -3,6 +3,10 @@
  */
 package org.drools;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
 public class Message {
 
     private String          message1 = "One";
@@ -17,6 +21,18 @@
 
     private int             status;
 
+    private List    list     = new ArrayList();
+    private int     number   = 0;
+    private Date    birthday = new Date();
+    private boolean fired    = false;    
+    
+    public Message() {
+    }
+    
+    public Message(final String msg) {
+        this.message = msg;
+    }    
+    
     public String getMessage() {
         return this.message;
     }
@@ -64,4 +80,40 @@
     public void setMessage4(final String message4) {
         this.message4 = message4;
     }
+    
+    public boolean isFired() {
+        return this.fired;
+    }
+
+    public void setFired(final boolean fired) {
+        this.fired = fired;
+    }
+
+    public Date getBirthday() {
+        return this.birthday;
+    }
+
+    public void setBirthday(final Date birthday) {
+        this.birthday = birthday;
+    }
+
+    public int getNumber() {
+        return this.number;
+    }
+
+    public void setNumber(final int number) {
+        this.number = number;
+    }
+
+    public List getList() {
+        return this.list;
+    }
+
+    public void setList(final List list) {
+        this.list = list;
+    }
+
+    public void addToList(final String s) {
+        this.list.add( s );
+    }    
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java	2007-10-10 20:24:15 UTC (rev 15730)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java	2007-10-10 20:24:28 UTC (rev 15731)
@@ -29,7 +29,7 @@
 import org.drools.event.ActivationCreatedEvent;
 import org.drools.event.AgendaEventListener;
 import org.drools.event.DefaultAgendaEventListener;
-import org.drools.integrationtests.helloworld.Message;
+import org.drools.Message;
 import org.drools.lang.descr.PackageDescr;
 import org.drools.rule.Package;
 import org.drools.ruleflow.common.instance.ProcessInstance;

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	2007-10-10 20:24:15 UTC (rev 15730)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2007-10-10 20:24:28 UTC (rev 15731)
@@ -39,6 +39,7 @@
 import org.acme.insurance.Driver;
 import org.acme.insurance.Policy;
 import org.drools.Address;
+import org.drools.Attribute;
 import org.drools.Cell;
 import org.drools.Cheese;
 import org.drools.Cheesery;
@@ -96,7 +97,7 @@
 import org.drools.event.WorkingMemoryEventListener;
 import org.drools.facttemplates.Fact;
 import org.drools.facttemplates.FactTemplate;
-import org.drools.integrationtests.helloworld.Message;
+import org.drools.Message;
 import org.drools.lang.DrlDumper;
 import org.drools.lang.descr.AttributeDescr;
 import org.drools.lang.descr.PackageDescr;
@@ -110,6 +111,7 @@
 import org.drools.spi.GlobalResolver;
 import org.drools.xml.XmlDumper;
 
+
 /** Run all the tests with the ReteOO engine implementation */
 public class MiscTest extends TestCase {
 
@@ -397,7 +399,29 @@
                       list.size() );
 
     }
+    
+    public void NullFieldOnCompositeSink() throws Exception {
+        final PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NullFieldOnCompositeSink.drl" ) ) );
+        final Package pkg = builder.getPackage();
 
+        // add the package to a rulebase
+        final RuleBase ruleBase = getRuleBase();
+        ruleBase.addPackage( pkg );
+        
+        WorkingMemory workingMemory = ruleBase.newStatefulSession();
+        List list = new ArrayList();
+        workingMemory.setGlobal("list", list);
+        
+        workingMemory.insert(new Attribute());
+        workingMemory.insert(new Message());
+        workingMemory.fireAllRules();
+        
+        assertEquals(1, list.size());
+        assertEquals("X", list.get(0));
+    	
+    }
+
     public void testEmptyPattern() throws Exception {
         // pre build the package
         final PackageBuilder builder = new PackageBuilder();

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/HelloWorld.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/HelloWorld.drl	2007-10-10 20:24:15 UTC (rev 15730)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/HelloWorld.drl	2007-10-10 20:24:28 UTC (rev 15731)
@@ -7,7 +7,7 @@
 
 rule "Hello World"
 	when
-		$m : org.drools.integrationtests.helloworld.Message(list contains "hello", 
+		$m : org.drools.Message(list contains "hello", 
 					text:message == "hola", 
 					number > 40, 
 					birthday > "10-Jul-1974", 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_EffectiveDate.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_EffectiveDate.drl	2007-10-10 20:24:15 UTC (rev 15730)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_EffectiveDate.drl	2007-10-10 20:24:28 UTC (rev 15731)
@@ -9,7 +9,7 @@
 	date-effective "9-Jul-1974"
 	date-expires "10-Jul-1974"
 	when
-		$m : org.drools.integrationtests.helloworld.Message()
+		$m : org.drools.Message()
 	then
 		$m.setFired(true); 
 end

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ExplicitAnd.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ExplicitAnd.drl	2007-10-10 20:24:15 UTC (rev 15730)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ExplicitAnd.drl	2007-10-10 20:24:28 UTC (rev 15731)
@@ -1,6 +1,6 @@
 package HelloWorld
  
-import org.drools.integrationtests.helloworld.Message
+import org.drools.Message
 import org.drools.Cheese;
 
 global java.util.List list;

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_NullFieldOnCompositeSink.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_NullFieldOnCompositeSink.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_NullFieldOnCompositeSink.drl	2007-10-10 20:24:28 UTC (rev 15731)
@@ -0,0 +1,34 @@
+package org.drools
+ 
+import org.drools.Message;
+import org.drools.Attribute;
+
+global java.util.List list;
+ 
+rule "rule_1"
+
+when
+    Message()
+    Attribute(value == 1)
+then
+    System.err.println("case 1");
+end
+
+rule "rule_2"
+
+when
+    Message()
+    Attribute(value == 2)
+then
+System.err.println("case 2");
+end
+
+
+rule "rule_3"
+
+when
+    Message()
+    $a:Attribute(value == null)
+then
+    list.add( "X" );
+end 
\ No newline at end of file




More information about the jboss-svn-commits mailing list