[jboss-svn-commits] JBL Code SVN: r6875 - in labs/jbossrules/branches/3.0.x/drools-core/src: main/java/org/drools/reteoo test/java/org/drools/reteoo

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 17 20:02:02 EDT 2006


Author: ahtik
Date: 2006-10-17 20:01:53 -0400 (Tue, 17 Oct 2006)
New Revision: 6875

Modified:
   labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/BetaNode.java
   labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java
   labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java
   labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/reteoo/LeftInputAdapterNodeTest.java
   labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/reteoo/NotNodeTest.java
Log:
JBRULES-523: add checks and related tests to avoid NPE in BetaNodeBinder and NotNode getConstraints methods when the the binder is null, so that getContraints return a null

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/BetaNode.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/BetaNode.java	2006-10-17 23:50:30 UTC (rev 6874)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/BetaNode.java	2006-10-18 00:01:53 UTC (rev 6875)
@@ -93,6 +93,10 @@
     }
 
     public FieldConstraint[] getConstraints() {
+        
+        // Sanity check
+        if (joinNodeBinder==null) {return null;}
+        
         return this.joinNodeBinder.getConstraints();
     }
 

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java	2006-10-17 23:50:30 UTC (rev 6874)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java	2006-10-18 00:01:53 UTC (rev 6875)
@@ -93,6 +93,10 @@
     }
 
     public FieldConstraint[] getConstraints() {
+        
+        // Sanity check
+        if (binder==null) {return null;}
+        
         return this.binder.getConstraints();
     }
 

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java	2006-10-17 23:50:30 UTC (rev 6874)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java	2006-10-18 00:01:53 UTC (rev 6875)
@@ -407,4 +407,13 @@
         return matches;
     }
 
+    public void testGetConstraints_ReturnsNullEvenWithEmptyBinder() {
+        BetaNodeBinder nullBinder = null;
+        JoinNode joinNode = new JoinNode( 1,
+                                                this.tupleSource,
+                                                this.objectSource, nullBinder);        
+        FieldConstraint[] constraints = joinNode.getConstraints();
+        assertNull(constraints);
+    }
+    
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/reteoo/LeftInputAdapterNodeTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/reteoo/LeftInputAdapterNodeTest.java	2006-10-17 23:50:30 UTC (rev 6874)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/reteoo/LeftInputAdapterNodeTest.java	2006-10-18 00:01:53 UTC (rev 6875)
@@ -20,8 +20,10 @@
 import java.util.Map;
 
 import org.drools.DroolsTestCase;
+import org.drools.common.BetaNodeBinder;
 import org.drools.common.DefaultFactHandle;
 import org.drools.common.PropagationContextImpl;
+import org.drools.spi.FieldConstraint;
 import org.drools.spi.PropagationContext;
 import org.drools.util.LinkedList;
 import org.drools.util.LinkedListObjectWrapper;
@@ -171,4 +173,12 @@
 
     }
 
+    public void testGetConstraints_ReturnsNullEvenWithEmptyBinder() {
+        BetaNodeBinder nullBinder = null;
+        final MockObjectSource source = new MockObjectSource( 15 );
+        LeftInputAdapterNode node = new LeftInputAdapterNode( 1,
+                                                source, nullBinder);        
+        FieldConstraint[] constraints = node.getConstraints();
+        assertNull(constraints);        
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/reteoo/NotNodeTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/reteoo/NotNodeTest.java	2006-10-17 23:50:30 UTC (rev 6874)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/reteoo/NotNodeTest.java	2006-10-18 00:01:53 UTC (rev 6875)
@@ -27,6 +27,7 @@
 import org.drools.common.DefaultFactHandle;
 import org.drools.common.PropagationContextImpl;
 import org.drools.rule.Rule;
+import org.drools.spi.FieldConstraint;
 import org.drools.spi.MockConstraint;
 import org.drools.spi.PropagationContext;
 
@@ -284,5 +285,16 @@
             Assert.fail( "No exception should be raised in this procedure, but got: " + e.toString() );
         }
     }
+    
 
+    public void testGetConstraints_ReturnsNullEvenWithEmptyBinder() {
+        BetaNodeBinder nullBinder = null;
+        NotNode notNode = new NotNode( 1,
+                                                this.tupleSource,
+                                                this.objectSource, nullBinder);        
+        FieldConstraint[] constraints = notNode.getConstraints();
+        assertNull(constraints);
+        
+    }
+
 }
\ No newline at end of file




More information about the jboss-svn-commits mailing list