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() {


Reply via email to