diff options
-rw-r--r-- | src/documentation/content/xdocs/status.xml | 1 | ||||
-rw-r--r-- | src/java/org/apache/poi/ss/formula/FormulaCellCacheEntrySet.java | 5 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index c0790c9f33..5da84b934b 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -34,6 +34,7 @@ <changes> <release version="3.8-beta3" date="2011-??-??"> + <action dev="poi-developers" type="fix">51273 - Formula Value Cache fix for repeated evaluations</action> <action dev="poi-developers" type="add">51171 - Improved performance of SharedValueManager </action> <action dev="poi-developers" type="fix">51236 - XSSF set colour support for black/white to match getter</action> <action dev="poi-developers" type="add">51196 - Initial support for Spreadsheet Chart API</action> diff --git a/src/java/org/apache/poi/ss/formula/FormulaCellCacheEntrySet.java b/src/java/org/apache/poi/ss/formula/FormulaCellCacheEntrySet.java index d8e573150e..9a40cbc95e 100644 --- a/src/java/org/apache/poi/ss/formula/FormulaCellCacheEntrySet.java +++ b/src/java/org/apache/poi/ss/formula/FormulaCellCacheEntrySet.java @@ -76,8 +76,7 @@ final class FormulaCellCacheEntrySet { private static boolean addInternal(CellCacheEntry[] arr, CellCacheEntry cce) { - - int startIx = cce.hashCode() % arr.length; + int startIx = Math.abs(cce.hashCode() % arr.length); for(int i=startIx; i<arr.length; i++) { CellCacheEntry item = arr[i]; @@ -130,7 +129,7 @@ final class FormulaCellCacheEntrySet { // else - usual case // delete single element (without re-hashing) - int startIx = cce.hashCode() % arr.length; + int startIx = Math.abs(cce.hashCode() % arr.length); // note - can't exit loops upon finding null because of potential previous deletes for(int i=startIx; i<arr.length; i++) { |