diff --git a/modules/analysis/kuromoji/build.xml b/modules/analysis/kuromoji/build.xml index 84c2115ad6a..f1432fde14f 100644 --- a/modules/analysis/kuromoji/build.xml +++ b/modules/analysis/kuromoji/build.xml @@ -72,7 +72,7 @@ - + diff --git a/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/util/CSVUtil.java b/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/util/CSVUtil.java index f0ee6ef8cef..1bb1faf7385 100644 --- a/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/util/CSVUtil.java +++ b/modules/analysis/kuromoji/src/java/org/apache/lucene/analysis/kuromoji/util/CSVUtil.java @@ -54,7 +54,7 @@ public final class CSVUtil { String value = sb.toString(); value = unQuoteUnEscape(value); result.add(value); - sb = new StringBuilder(); + sb.setLength(0); continue; } @@ -75,13 +75,17 @@ public final class CSVUtil { String result = original; // Unquote - Matcher m = QUOTE_REPLACE_PATTERN.matcher(original); - if(m.matches()) { - result = m.group(1); - } + if (result.indexOf('\"') >= 0) { + Matcher m = QUOTE_REPLACE_PATTERN.matcher(original); + if(m.matches()) { + result = m.group(1); + } - // Unescape - result = result.replaceAll(ESCAPED_QUOTE, "\""); + // Unescape + if (result.indexOf(ESCAPED_QUOTE) >= 0) { + result = result.replace(ESCAPED_QUOTE, "\""); + } + } return result; @@ -92,7 +96,11 @@ public final class CSVUtil { * @param original */ public static String quoteEscape(String original) { - String result = original.replaceAll("\"", ESCAPED_QUOTE); + String result = original; + + if (result.indexOf('\"') >= 0) { + result.replace("\"", ESCAPED_QUOTE); + } if(result.indexOf(COMMA) >= 0) { result = "\"" + result + "\""; }