Author: doogie
Date: Wed Feb 17 05:17:37 2010
New Revision: 910829

URL: http://svn.apache.org/viewvc?rev=910829&view=rev
Log:
Fix parsing of trailing empty components in TimeDuration string values.

Modified:
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/TimeDuration.java
    
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/TimeDurationTests.java

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/TimeDuration.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/TimeDuration.java?rev=910829&r1=910828&r2=910829&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/TimeDuration.java 
(original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/TimeDuration.java Wed 
Feb 17 05:17:37 2010
@@ -317,7 +317,7 @@
         boolean isZero = true;
         int[] intArray = {0, 0, 0, 0, 0, 0, 0};
         int i = intArray.length - 1;
-        String[] strArray = duration.split(":");
+        String[] strArray = duration.split(":", -1);
         for (int s = strArray.length - 1; s >= 0; s--) {
             if (UtilValidate.isNotEmpty(strArray[s])) {
                 intArray[i] = Integer.parseInt(strArray[s].trim());

Modified: 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/TimeDurationTests.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/TimeDurationTests.java?rev=910829&r1=910828&r2=910829&view=diff
==============================================================================
--- 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/TimeDurationTests.java 
(original)
+++ 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/TimeDurationTests.java 
Wed Feb 17 05:17:37 2010
@@ -75,12 +75,12 @@
     private static TimeDuration assertDurationLoop(String label, Calendar 
right, int years, int months, int days, int hours, int minutes, int seconds, 
int milliseconds, TimeDuration lastString, boolean isNegative) {
         StringBuilder sb = new StringBuilder();
         sb.append(years != 0 ? years : "");
-        sb.append(':').append(months != 0 || sb.length() > 0 ? months : "");
-        sb.append(':').append(days != 0 || sb.length() > 1 ? days : "");
-        sb.append(':').append(hours != 0 || sb.length() > 2 ? hours : "");
-        sb.append(':').append(minutes != 0 || sb.length() > 3 ? minutes : "");
-        sb.append(':').append(seconds != 0 || sb.length() > 4 ? seconds : "");
-        sb.append(':').append(milliseconds != 0 || sb.length() > 5 ? 
milliseconds : "");
+        sb.append(':').append(months != 0 ? months : "");
+        sb.append(':').append(days != 0 ? days : "");
+        sb.append(':').append(hours != 0 ? hours : "");
+        sb.append(':').append(minutes != 0 ? minutes : "");
+        sb.append(':').append(seconds != 0 ? seconds : "");
+        sb.append(':').append(milliseconds != 0 ? milliseconds : "");
         String durationString = years + ":" + months + ":" + days + ":" + 
hours + ":" + minutes + ":" + seconds + ":" + milliseconds;
         TimeDuration stringDuration = 
TimeDuration.parseDuration(sb.toString());
         right.setTimeInMillis(0);


Reply via email to