[jboss-svn-commits] JBL Code SVN: r13513 - in labs/jbossrules/trunk/drools-core/src: test/java/org/drools/base and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Jul 14 17:25:05 EDT 2007
Author: tirelli
Date: 2007-07-14 17:25:05 -0400 (Sat, 14 Jul 2007)
New Revision: 13513
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ObjectFactory.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java
Log:
JBRULES-984: fixing null value management on contains operator
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ObjectFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ObjectFactory.java 2007-07-14 21:22:36 UTC (rev 13512)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ObjectFactory.java 2007-07-14 21:25:05 UTC (rev 13513)
@@ -464,21 +464,21 @@
final Object object1, final FieldValue object2) {
final Object value = object2.getValue();
final Collection col = (Collection) extractor.getValue( workingMemory, object1 );
- return col.contains( value );
+ return ( col == null ) ? false : col.contains( value );
}
public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
final VariableContextEntry context, final Object left) {
final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
final Collection col = (Collection) ((ObjectVariableContextEntry) context).right;
- return col.contains( value );
+ return ( col == null ) ? false : col.contains( value );
}
public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
final VariableContextEntry context, final Object right) {
final Object value = ((ObjectVariableContextEntry) context).left;
final Collection col = (Collection) context.extractor.getValue( workingMemory, right );
- return col.contains( value );
+ return ( col == null ) ? false : col.contains( value );
}
public boolean evaluate(InternalWorkingMemory workingMemory,
@@ -487,7 +487,7 @@
final Extractor extractor2, final Object object2) {
final Object value = extractor2.getValue( workingMemory, object2 );
final Collection col = (Collection) extractor1.getValue( workingMemory, object1 );
- return col.contains( value );
+ return ( col == null ) ? false : col.contains( value );
}
public String toString() {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java 2007-07-14 21:22:36 UTC (rev 13512)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java 2007-07-14 21:25:05 UTC (rev 13513)
@@ -54,6 +54,7 @@
final List list = new ArrayList();
list.add( "foo" );
+ list.add( null );
Collection col = Arrays.asList( new String[] { "foo", "bar", null} );
@@ -63,6 +64,9 @@
{"foo", "!=", "bar", Boolean.TRUE},
{list, "contains", "foo", Boolean.TRUE},
{list, "contains", "bar", Boolean.FALSE},
+ {list, "contains", null, Boolean.TRUE},
+ {null, "contains", "bar", Boolean.FALSE},
+ {null, "contains", null, Boolean.FALSE},
{list, "==", null, Boolean.FALSE},
{list, "!=", null, Boolean.TRUE},
{null, "==", null, Boolean.TRUE},
More information about the jboss-svn-commits
mailing list