[jboss-svn-commits] JBL Code SVN: r12875 - 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
Tue Jun 26 19:02:55 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-06-26 19:02:55 -0400 (Tue, 26 Jun 2007)
New Revision: 12875

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/AbstractHashTable.java
   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-904 ArrayIndexOutOfBoundsException in org.drools.util.TupleIndexHashTable.toArray
-The toArray() was using the wrong size variable, it should have used factSize.

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/AbstractHashTable.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/AbstractHashTable.java	2007-06-26 22:11:54 UTC (rev 12874)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/AbstractHashTable.java	2007-06-26 23:02:55 UTC (rev 12875)
@@ -95,7 +95,7 @@
 
         this.table = newTable;
         this.threshold = (int) (newCapacity * this.loadFactor);
-    }
+    }     
     
     public Entry[] toArray() {
         Entry[] result = new Entry[this.size];

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-06-26 22:11:54 UTC (rev 12874)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactHandleIndexHashTable.java	2007-06-26 23:02:55 UTC (rev 12875)
@@ -117,7 +117,7 @@
     }
     
     public Entry[] toArray() {
-        Entry[] result = new Entry[this.size];
+        Entry[] result = new Entry[this.factSize];
         int index = 0;
         for ( int i = 0; i < this.table.length; i++ ) {
             FieldIndexEntry fieldIndexEntry = (FieldIndexEntry)this.table[i];

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-06-26 22:11:54 UTC (rev 12874)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/TupleIndexHashTable.java	2007-06-26 23:02:55 UTC (rev 12875)
@@ -168,7 +168,7 @@
     }
     
     public Entry[] toArray() {
-        Entry[] result = new Entry[this.size];
+        Entry[] result = new Entry[this.factSize];
         int index = 0;
         for ( int i = 0; i < this.table.length; i++ ) {
             FieldIndexEntry fieldIndexEntry = (FieldIndexEntry)this.table[i];
@@ -278,6 +278,7 @@
                                    this.table.length );
         FieldIndexEntry entry = (FieldIndexEntry) this.table[index];
 
+        // search to find an existing entry
         while ( entry != null ) {
             if ( entry.matches( tuple,
                                 hashCode ) ) {
@@ -286,6 +287,7 @@
             entry = (FieldIndexEntry) entry.next;
         }
 
+        // entry does not exist, so create
         if ( entry == null ) {
             entry = new FieldIndexEntry( this.index,
                                          hashCode );




More information about the jboss-svn-commits mailing list