Index: trunk/modules/text/src/main/java/java/text/RuleBasedCollator.java =================================================================== --- trunk/modules/text/src/main/java/java/text/RuleBasedCollator.java (revision 438744) +++ trunk/modules/text/src/main/java/java/text/RuleBasedCollator.java (working copy) @@ -87,6 +87,8 @@ */ public CollationElementIterator getCollationElementIterator( CharacterIterator source) { + if (source == null) + throw new NullPointerException(); return new CollationElementIterator( ((com.ibm.icu.text.RuleBasedCollator) this.icuColl) .getCollationElementIterator(source)); @@ -100,6 +102,8 @@ * @return a CollationElementIterator for the given String */ public CollationElementIterator getCollationElementIterator(String source) { + if (source == null) + throw new NullPointerException(); return new CollationElementIterator( ((com.ibm.icu.text.RuleBasedCollator) this.icuColl) .getCollationElementIterator(source)); Index: trunk/modules/text/src/test/java/org/apache/harmony/text/tests/java/text/RuleBasedCollatorTest.java =================================================================== --- trunk/modules/text/src/test/java/org/apache/harmony/text/tests/java/text/RuleBasedCollatorTest.java (revision 438744) +++ trunk/modules/text/src/test/java/org/apache/harmony/text/tests/java/text/RuleBasedCollatorTest.java (working copy) @@ -16,6 +16,7 @@ package org.apache.harmony.text.tests.java.text; +import java.text.CharacterIterator; import java.text.CollationElementIterator; import java.text.CollationKey; import java.text.Collator; @@ -120,7 +121,7 @@ * Class under test for java.text.CollationElementIterator * getCollationElementIterator(java.lang.String) */ - public void testGetCollationElementIteratorString() { + public void testGetCollationElementIteratorString() throws Exception { { Locale locale = new Locale("es", "", "TRADITIONAL"); RuleBasedCollator coll = (RuleBasedCollator) Collator @@ -156,6 +157,13 @@ assertEquals(e_offset[i++], offset); } } + //Regression for HARMONY-1352 + try { + new RuleBasedCollator("< a< b< c< d").getCollationElementIterator((String)null); + fail("NullPointerException expected"); + } catch (NullPointerException e) { + //expected + } } /* @@ -162,7 +170,7 @@ * Class under test for java.text.CollationElementIterator * getCollationElementIterator(java.text.CharacterIterator) */ - public void testGetCollationElementIteratorCharacterIterator() { + public void testGetCollationElementIteratorCharacterIterator() throws Exception { { Locale locale = new Locale("es", "", "TRADITIONAL"); RuleBasedCollator coll = (RuleBasedCollator) Collator @@ -201,6 +209,13 @@ assertEquals(e_offset[i++], offset); } } + //Regression for HARMONY-1352 + try { + new RuleBasedCollator("< a< b< c< d").getCollationElementIterator((CharacterIterator)null); + fail("NullPointerException expected"); + } catch (NullPointerException e) { + //expected + } } public void testStrength() {