[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