Index: text/src/test/java/org/apache/harmony/tests/java/text/MessageFormatTest.java =================================================================== --- text/src/test/java/org/apache/harmony/tests/java/text/MessageFormatTest.java (revision 376910) +++ text/src/test/java/org/apache/harmony/tests/java/text/MessageFormatTest.java (working copy) @@ -16,16 +16,30 @@ package org.apache.harmony.tests.java.text; import java.text.MessageFormat; +import java.util.Locale; import junit.framework.TestCase; public class MessageFormatTest extends TestCase { - /** - * @tests java.textMessageFormat#toPattern() - */ - public void test_toPattern() { - // Regression for HARMONY-59 - new MessageFormat("CHOICE {1,choice}").toPattern(); - } + /** + * @tests java.textMessageFormat#toPattern() + */ + public void test_toPattern() { + // Regression for HARMONY-59 + new MessageFormat("CHOICE {1,choice}").toPattern(); + } + + public void test_parse() { + // Regression for HARMONY-63 + try { + MessageFormat mf = new MessageFormat("{0,number,#,####}", Locale.US); + Object[] res = mf.parse("1,00,00"); + assertEquals("Assert 0: incorrect size of parsed data ", 1, + res.length); + } catch (Exception e) { + fail("Assert 0: Unexpected exception " + e); + } + } } Index: text/src/main/java/java/text/MessageFormat.java =================================================================== --- text/src/main/java/java/text/MessageFormat.java (revision 376910) +++ text/src/main/java/java/text/MessageFormat.java (working copy) @@ -532,7 +532,7 @@ return new Object[0]; ParsePosition internalPos = new ParsePosition(0); int offset = position.getIndex(); - Object[] result = new Object[10]; + Object[] result = new Object[maxOffset + 1]; for (int i = 0; i <= maxOffset; i++) { String sub = strings[i]; if (!string.startsWith(sub, offset)) {