[jboss-svn-commits] JBL Code SVN: r12192 - labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon May 28 22:29:08 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-05-28 22:29:08 -0400 (Mon, 28 May 2007)
New Revision: 12192

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactHandleIndexHashTable.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/TupleIndexHashTable.java
Log:
JBRULES-792 Some "collect" rules cause hang during assertion
-Indexed HashTables cannot use a standard toArray, so override.

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactHandleIndexHashTable.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactHandleIndexHashTable.java	2007-05-28 23:48:26 UTC (rev 12191)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactHandleIndexHashTable.java	2007-05-29 02:29:08 UTC (rev 12192)
@@ -6,6 +6,7 @@
 import org.drools.common.InternalFactHandle;
 import org.drools.reteoo.FactHandleMemory;
 import org.drools.reteoo.ReteTuple;
+import org.drools.util.TupleIndexHashTable.FieldIndexEntry;
 
 public class FactHandleIndexHashTable extends AbstractHashTable
     implements
@@ -114,6 +115,22 @@
             this.entry = entry;
         }
     }
+    
+    public Entry[] toArray() {
+        Entry[] result = new Entry[this.size];
+        int index = 0;
+        for ( int i = 0; i < this.table.length; i++ ) {
+            FieldIndexEntry fieldIndexEntry = (FieldIndexEntry)this.table[i];
+            if ( fieldIndexEntry != null ) {
+                Entry entry = fieldIndexEntry.getFirst();
+                while ( entry != null ) {
+                    result[index++] = entry;
+                    entry = entry.getNext();
+                }
+            }
+        }
+        return result;
+    }    
 
     public boolean add(final InternalFactHandle handle) {
         final FieldIndexEntry entry = getOrCreate( handle.getObject() );

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/TupleIndexHashTable.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/TupleIndexHashTable.java	2007-05-28 23:48:26 UTC (rev 12191)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/TupleIndexHashTable.java	2007-05-29 02:29:08 UTC (rev 12192)
@@ -166,6 +166,22 @@
             this.entry = null;
         }
     }
+    
+    public Entry[] toArray() {
+        Entry[] result = new Entry[this.size];
+        int index = 0;
+        for ( int i = 0; i < this.table.length; i++ ) {
+            FieldIndexEntry fieldIndexEntry = (FieldIndexEntry)this.table[i];
+            if ( fieldIndexEntry != null ) {
+                Entry entry = fieldIndexEntry.getFirst();
+                while ( entry != null ) {
+                    result[index++] = entry;
+                    entry = entry.getNext();
+                }
+            }
+        }
+        return result;
+    }       
 
     public void add(final ReteTuple tuple) {
         final FieldIndexEntry entry = getOrCreate( tuple );




More information about the jboss-svn-commits mailing list