From: Nick Burch Date: Mon, 28 Jul 2008 16:41:47 +0000 (+0000) Subject: Fix for DataFormatter on some JVMs X-Git-Tag: REL_3_2_FINAL~228 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=cfb357a62c6203bd7d1dfde123f703b82cd81e39;p=poi.git Fix for DataFormatter on some JVMs git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@680394 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFDataFormatter.java b/src/java/org/apache/poi/hssf/usermodel/HSSFDataFormatter.java index c1701e22b3..e186cf73c3 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFDataFormatter.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFDataFormatter.java @@ -202,10 +202,12 @@ public class HSSFDataFormatter { // remove color formatting if present String formatStr = sFormat.replaceAll("\\[[a-zA-Z]*\\]", ""); - // try to extract special characters like currency - Matcher m = specialPatternGroup.matcher(formatStr); + // Try to extract special characters like currency + // Need to re-create the matcher each time, as the string + // will potentially change on each pass + Matcher m; try { - while(m.find()) { + while((m = specialPatternGroup.matcher(formatStr)).find()) { String match = m.group(); String symbol = match.substring(match.indexOf('$') + 1, match.indexOf('-')); if (symbol.indexOf('$') > -1) {