[jboss-svn-commits] JBL Code SVN: r19844 - in labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools: integrationtests and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri May 2 22:57:20 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-05-02 22:57:20 -0400 (Fri, 02 May 2008)
New Revision: 19844
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Alarm.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java
Log:
JBRULES-1583 Heap and scheduled Activations
-Added Unit test
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Alarm.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Alarm.java 2008-05-03 02:56:27 UTC (rev 19843)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Alarm.java 2008-05-03 02:57:20 UTC (rev 19844)
@@ -3,6 +3,8 @@
public class Alarm {
private String message;
+ private int number;
+
public Alarm() {
}
@@ -62,5 +64,17 @@
public void setMessage(final String message) {
this.message = message;
}
+
+ public int getNumber() {
+ return number;
+ }
+ public void setNumber(int number) {
+ this.number = number;
+ }
+
+ public void incrementNumber() {
+ this.number++;;
+ }
+
}
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 2008-05-03 02:56:27 UTC (rev 19843)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ExecutionFlowControlTest.java 2008-05-03 02:57:20 UTC (rev 19844)
@@ -2,6 +2,8 @@
import junit.framework.Assert;
import junit.framework.TestCase;
+
+import org.drools.Alarm;
import org.drools.Cheese;
import org.drools.FactHandle;
import org.drools.Message;
@@ -33,6 +35,7 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
+import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
@@ -493,6 +496,39 @@
assertEquals( 1,
list.size() );
}
+
+ public void testDurationMemoryLeakonRepeatedUpdate() throws Exception {
+ String str = "package org.drools.test\n" +
+ "import org.drools.Alarm\n" +
+ "global java.util.List list;" +
+ "rule \"COMPTEUR\"\n" +
+ " duration 50\n" +
+ " when\n" +
+ " $alarm : Alarm( number < 5 )\n" +
+ " then\n" +
+ " $alarm.incrementNumber();\n" +
+ " list.add( $alarm );\n" +
+ " update($alarm);\n" +
+ "end\n";
+
+ PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new StringReader( str ) );
+
+ RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
+
+ StatefulSession session = ruleBase.newStatefulSession();
+ List list = new ArrayList();
+ session.setGlobal( "list", list );
+ session.insert( new Alarm() );
+
+ session.fireAllRules();
+
+ Thread.sleep( 1000 );
+
+ assertEquals( 5, list.size() );
+ assertEquals(0, session.getAgenda().getScheduledActivations().length );
+ }
public void testFireRuleAfterDuration() throws Exception {
final PackageBuilder builder = new PackageBuilder();
More information about the jboss-svn-commits
mailing list