[jboss-svn-commits] JBL Code SVN: r5064 - in labs/jbossrules/trunk: drools-compiler/src/test/java/org/drools drools-compiler/src/test/java/org/drools/integrationtests drools-compiler/src/test/resources/org/drools/integrationtests drools-core/src/main/java/org/drools/reteoo drools-core/src/main/java/org/drools/rule

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jul 12 21:01:47 EDT 2006


Author: tirelli
Date: 2006-07-12 21:01:31 -0400 (Wed, 12 Jul 2006)
New Revision: 5064

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/AssertedObject.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Precondition.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_RemovePackage.drl
Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Rule.java
Log:
Fixing JBRULES-358:

  * Fixing sharing counter for shared nodes on ReteooBuilder
  * Fixing NPE on equals() for Rule class
  * Added test case



Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/AssertedObject.java (from rev 5063, labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/AssertedObject.java)

Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Precondition.java (from rev 5063, labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/Precondition.java)

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2006-07-13 00:55:31 UTC (rev 5063)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2006-07-13 01:01:31 UTC (rev 5064)
@@ -39,9 +39,11 @@
 import org.drools.Cheesery;
 import org.drools.FactHandle;
 //import org.drools.IndexedNumber;
+import org.drools.AssertedObject;
 import org.drools.IndexedNumber;
 import org.drools.Person;
 import org.drools.PersonInterface;
+import org.drools.Precondition;
 import org.drools.QueryResults;
 import org.drools.RuleBase;
 import org.drools.Sensor;
@@ -2526,5 +2528,31 @@
             Assert.assertEquals( "Fact is out of order", i, n.getIndex() );
         }
     }
+    
+    public void testRemovePackage() {
+        try {
+            final PackageBuilder builder = new PackageBuilder();
+            builder.addPackageFromDrl( new InputStreamReader(  getClass().getResourceAsStream( "test_RemovePackage.drl" )  ) );
+      
+            final RuleBase ruleBase = getRuleBase();
+            String packageName=builder.getPackage().getName();
+            ruleBase.addPackage( builder.getPackage() );
+      
+            final WorkingMemory workingMemory = ruleBase.newWorkingMemory();
+            
+            workingMemory.assertObject( new Precondition("genericcode","genericvalue"));
+            workingMemory.fireAllRules();
+            
+            RuleBase ruleBaseWM=workingMemory.getRuleBase();
+            ruleBaseWM.removePackage(packageName);
+            final PackageBuilder builder1 = new PackageBuilder();
+            builder1.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RemovePackage.drl" ) ) );
+            ruleBaseWM.addPackage(builder1.getPackage());
+            workingMemory.fireAllRules();
+        } catch ( Exception e ) {
+            Assert.fail( "Removing packages should not throw any exception: "+e.getMessage() );
+        }
+    }
+    
 
 }

Copied: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_RemovePackage.drl (from rev 5063, labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_RemovePackage.drl)

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java	2006-07-13 00:55:31 UTC (rev 5063)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java	2006-07-13 01:01:31 UTC (rev 5064)
@@ -567,6 +567,7 @@
 
             node = candidate;
         } else {
+            node.addShare();
             this.id--;
         }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Rule.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Rule.java	2006-07-13 00:55:31 UTC (rev 5063)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Rule.java	2006-07-13 01:01:31 UTC (rev 5064)
@@ -432,7 +432,12 @@
 
         final Rule other = (Rule) object;
 
-        return (this.name.equals( other.name ) && this.agendaGroup.equals( other.agendaGroup ) && this.ActivationGroup.equals( other.ActivationGroup ) && this.salience == other.salience && this.noLoop == other.noLoop);
+        return (this.name.equals( other.name ) && 
+                this.agendaGroup.equals( other.agendaGroup ) &&
+                (( this.ActivationGroup == null && other.ActivationGroup == null) ||
+                 ( this.ActivationGroup != null && this.ActivationGroup.equals( other.ActivationGroup ))) && 
+                this.salience == other.salience && 
+                this.noLoop == other.noLoop);
     }
 
     public int hashCode() {




More information about the jboss-svn-commits mailing list