[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