Allow empty rules in a RuleBasedCollator.
This is allowed by the CLDR specification, and we were already allowing
most forms of empty rules, just not the zero-length string.
Change-Id: I3c2a020aac23e54f8044defbfe2e2a5b600e454c
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/RuleBasedCollatorTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/RuleBasedCollatorTest.java
index 89dfea9..f5a8057 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/RuleBasedCollatorTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/RuleBasedCollatorTest.java
@@ -250,14 +250,9 @@
}
}
- public void testEmptyStringException() {
- //Regression for HARMONY-241
- try {
- new RuleBasedCollator("");
- fail();
- } catch (ParseException e) {
- assertEquals("java.text.ParseException", e.getClass().getName());
- assertEquals(0, e.getErrorOffset());
- }
+ public void testEmptyRules() throws Exception {
+ new RuleBasedCollator("");
+ new RuleBasedCollator(" ");
+ new RuleBasedCollator("# This is a comment.");
}
}
diff --git a/luni/src/main/java/java/text/RuleBasedCollator.java b/luni/src/main/java/java/text/RuleBasedCollator.java
index db1da5f..90dbd86 100644
--- a/luni/src/main/java/java/text/RuleBasedCollator.java
+++ b/luni/src/main/java/java/text/RuleBasedCollator.java
@@ -101,10 +101,6 @@
if (rules == null) {
throw new NullPointerException("rules == null");
}
- // icu4c is fine with empty rules, but the RI isn't.
- if (rules.isEmpty()) {
- throw new ParseException("empty rules", 0);
- }
try {
icuColl = new RuleBasedCollatorICU(rules);
} catch (Exception e) {