Author: doogie
Date: Sun Feb 21 01:31:30 2010
New Revision: 912280

URL: http://svn.apache.org/viewvc?rev=912280&view=rev
Log:
BUG FIX: Fix parsing of currency, by using the correct subExpression,
instead of the entire parent expression.

Modified:
    
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java
    
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/test/FlexibleStringExpanderTests.java

Modified: 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java?rev=912280&r1=912279&r2=912280&view=diff
==============================================================================
--- 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java
 (original)
+++ 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java
 Sun Feb 21 01:31:30 2010
@@ -214,7 +214,7 @@
                 if (escapedExpression) {
                     strElems.add(new ConstElem(expression.substring(start, end 
+ 1)));
                 } else if (subExpression.contains("?currency(")) {
-                    strElems.add(new CurrElem(expression));
+                    strElems.add(new CurrElem(subExpression));
                 } else if (subExpression.contains(openBracket)) {
                     strElems.add(new NestedVarElem(subExpression));
                 } else {

Modified: 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/test/FlexibleStringExpanderTests.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/test/FlexibleStringExpanderTests.java?rev=912280&r1=912279&r2=912280&view=diff
==============================================================================
--- 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/test/FlexibleStringExpanderTests.java
 (original)
+++ 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/test/FlexibleStringExpanderTests.java
 Sun Feb 21 01:31:30 2010
@@ -84,13 +84,13 @@
         parserTest("currency", "${price?currency(usd)", 
"${price?currency(usd)");
         // CurrElem doesn't protected itself
         //parserTest("currency", "${?currency(}", "${?currency(}");
-        parserTest("currency", "${?currency()}", "${?currency()}");
+        parserTest("currency", "${?currency()}", "?currency()");
         //parserTest("currency", "${?currency(usd}", "${?currency(usd}");
-        parserTest("currency", "${?currency(usd)}", "${?currency(usd)}");
+        parserTest("currency", "${?currency(usd)}", "?currency(usd)");
         //parserTest("currency", "${price?currency(}", "${price?currency(}");
-        parserTest("currency", "${price?currency()}", "${price?currency()}");
+        parserTest("currency", "${price?currency()}", "price?currency()");
         //parserTest("currency", "${price?currency(usd}", 
"${price?currency(usd}");
-        parserTest("currency", "${price?currency(usd)}", 
"${price?currency(usd)}");
+        parserTest("currency", "${price?currency(usd)}", 
"price?currency(usd)");
         parserTest("currency", "a${price?currency(usd)}b", 
"a${price?currency(usd)}b");
     }
 
@@ -271,10 +271,10 @@
         fseTest("just bad", "${foobar", testMap, "${foobar", false);
         fseTest("constant and bad", "Hello${foobar", testMap, "Hello${foobar", 
false);
         fseTest("good and bad", "Hello ${var}${foobar", testMap, "Hello 
World${foobar", false);
-        //fseTest("currency(USD)", "The total is ${amount?currency(${usd})}.", 
testMap, null, localeToTest, "The total is $1,234,567.89.", false);
-        //fseTest("currency(USD): null", "The total is 
${testMap.missing?currency(${usd})}.", testMap, null, localeToTest, "The total 
is .", false);
-        //fseTest("currency(USD): missing", "The total is 
${noList[0]?currency(${usd})}.", testMap, null, localeToTest, "The total is .", 
false);
-        //fseTest("currency(USD): exception", "The total is 
${throwException.value?currency(${usd})}.", testMap, null, localeToTest, "The 
total is .", false);
+        fseTest("currency(USD)", "The total is ${amount?currency(${usd})}.", 
testMap, null, localeToTest, "The total is $1,234,567.89.", false);
+        fseTest("currency(USD): null", "The total is 
${testMap.missing?currency(${usd})}.", testMap, null, localeToTest, "The total 
is .", false);
+        fseTest("currency(USD): missing", "The total is 
${noList[0]?currency(${usd})}.", testMap, null, localeToTest, "The total is .", 
false);
+        fseTest("currency(USD): exception", "The total is 
${throwException.value?currency(${usd})}.", testMap, null, localeToTest, "The 
total is .", false);
         fseTest("null nested", "${${nullVar}}!", testMap, "!", false);
         fseTest("bsh: script", "${bsh:return \"Hello \" + var + \"!\";}", 
testMap, "Hello World!", false);
         fseTest("bsh: null", "${bsh:return null;}!", testMap, "!", false);


Reply via email to