Author: niallp
Date: Fri Jan 9 14:05:14 2009
New Revision: 733169
URL: http://svn.apache.org/viewvc?rev=733169&view=rev
Log:
Fix for LANG-477 OutOfMemory with custom format registry and a pattern
containing single quotes - thanks to Duncan Eley
Modified:
commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/ExtendedMessageFormat.java
commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/ExtendedMessageFormatTest.java
Modified:
commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/ExtendedMessageFormat.java
URL:
http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/ExtendedMessageFormat.java?rev=733169&r1=733168&r2=733169&view=diff
==============================================================================
---
commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/ExtendedMessageFormat.java
(original)
+++
commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/ExtendedMessageFormat.java
Fri Jan 9 14:05:14 2009
@@ -419,6 +419,7 @@
int start = pos.getIndex();
char[] c = pattern.toCharArray();
if (escapingOn && c[start] == QUOTE) {
+ next(pos);
return appendTo == null ? null : appendTo.append(QUOTE);
}
int lastHold = start;
Modified:
commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/ExtendedMessageFormatTest.java
URL:
http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/ExtendedMessageFormatTest.java?rev=733169&r1=733168&r2=733169&view=diff
==============================================================================
---
commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/ExtendedMessageFormatTest.java
(original)
+++
commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/ExtendedMessageFormatTest.java
Fri Jan 9 14:05:14 2009
@@ -93,6 +93,15 @@
}
/**
+ * Test Bug LANG-477 - out of memory error with escaped quote
+ */
+ public void testEscapedQuote_LANG_477() {
+ String pattern = "it''s a {0,lower} 'test'!";
+ ExtendedMessageFormat emf = new ExtendedMessageFormat(pattern,
registry);
+ assertEquals("it's a dummy test!", emf.format(new Object[] {"DUMMY"}));
+ }
+
+ /**
* Test extended and built in formats.
*/
public void testExtendedAndBuiltInFormats() {