[jboss-svn-commits] JBL Code SVN: r17689 - in labs/jbossrules/branches/4.0.x: drools-core/src/main/java/org/drools/base and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Jan 10 14:14:09 EST 2008
Author: tirelli
Date: 2008-01-10 14:14:09 -0500 (Thu, 10 Jan 2008)
New Revision: 17689
Modified:
labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/OutOfMemoryTest.java
labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java
labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java
labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/common/DefaultAgenda.java
labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java
Log:
JBRULES-1413: backporting changes to 4.0.4 branch
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/OutOfMemoryTest.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/OutOfMemoryTest.java 2008-01-10 19:09:05 UTC (rev 17688)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/OutOfMemoryTest.java 2008-01-10 19:14:09 UTC (rev 17689)
@@ -26,10 +26,11 @@
import org.drools.RuleBaseFactory;
import org.drools.StatefulSession;
import org.drools.WorkingMemory;
+import org.drools.audit.WorkingMemoryFileLogger;
+import org.drools.audit.WorkingMemoryInMemoryLogger;
import org.drools.compiler.PackageBuilder;
import org.drools.rule.Package;
-
/** Run all the tests with the ReteOO engine implementation */
public class OutOfMemoryTest extends TestCase {
@@ -53,22 +54,22 @@
final RuleBase ruleBase = getRuleBase();
ruleBase.addPackage( pkg );
-
+
int i = 0;
-
+
try {
- for( i = 0; i < 300000; i++ ) {
+ for ( i = 0; i < 300000; i++ ) {
final StatefulSession session = ruleBase.newStatefulSession( true );
session.dispose();
- }
+ }
} catch ( Throwable e ) {
- System.out.println("Error at: "+i);
+ System.out.println( "Error at: " + i );
e.printStackTrace();
- fail("Should not raise any error or exception.");
+ fail( "Should not raise any error or exception." );
}
}
-
+
public void testAgendaLoop() throws Exception {
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_OutOfMemory.drl" ) ) );
@@ -86,4 +87,27 @@
// just for profiling
//Thread.currentThread().wait();
}
+
+ public void testWorkingMemoryFileLogger() throws Exception {
+
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_OutOfMemoryError.drl" ) ) );
+ final Package pkg = builder.getPackage();
+
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+
+ try {
+ for ( int i = 0; i < 100000; i++ ) {
+ StatefulSession session = ruleBase.newStatefulSession();
+ WorkingMemoryInMemoryLogger logger = new WorkingMemoryInMemoryLogger( session );
+ session.fireAllRules();
+ session.dispose();
+ }
+ } catch ( Throwable e ) {
+ e.printStackTrace();
+ fail( "Should not raise OOME.");
+ }
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java 2008-01-10 19:09:05 UTC (rev 17688)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java 2008-01-10 19:14:09 UTC (rev 17689)
@@ -49,6 +49,13 @@
this.activation = agendaItem;
this.tuple = agendaItem.getTuple();
}
+
+ public void reset() {
+ this.rule = null;
+ this.subrule = null;
+ this.activation = null;
+ this.tuple = null;
+ }
public void insert(final Object object) throws FactException {
insert( object,
Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java 2008-01-10 19:09:05 UTC (rev 17688)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/SequentialKnowledgeHelper.java 2008-01-10 19:14:09 UTC (rev 17689)
@@ -53,6 +53,14 @@
this.activation = agendaItem;
this.tuple = agendaItem.getTuple();
}
+
+ public void reset() {
+ this.rule = null;
+ this.subrule = null;
+ this.activation = null;
+ this.tuple = null;
+ }
+
public void insert(final Object object) throws FactException {
}
Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/common/DefaultAgenda.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/common/DefaultAgenda.java 2008-01-10 19:09:05 UTC (rev 17688)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/common/DefaultAgenda.java 2008-01-10 19:14:09 UTC (rev 17689)
@@ -549,6 +549,7 @@
this.knowledgeHelper.setActivation( activation );
activation.getRule().getConsequence().evaluate( this.knowledgeHelper,
this.workingMemory );
+ this.knowledgeHelper.reset();
} catch ( final Exception e ) {
this.consequenceExceptionHandler.handleException( activation, this.workingMemory, e );
}
Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java 2008-01-10 19:09:05 UTC (rev 17688)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/spi/KnowledgeHelper.java 2008-01-10 19:14:09 UTC (rev 17689)
@@ -43,6 +43,9 @@
public void setActivation(final Activation agendaItem);
+ public void reset();
+
+
/**
* Asserts an object, notice that it does not return the FactHandle
*
More information about the jboss-svn-commits
mailing list