[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