[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