Bug in return 3 digit timestamp

Previous code change didnt consider when millisecond=000 condition.

Change-Id: I6af60c7193d51e7ddfb3737ed4db5d1f1c775289
This commit is contained in:
Kaiyan Sheng
2015-12-16 17:42:33 -07:00
parent 6505214df8
commit faa3f3d935
2 changed files with 15 additions and 6 deletions

View File

@@ -21,7 +21,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.commons.lang.StringUtils;
import java.io.IOException;
import java.util.HashMap;
@@ -141,11 +140,7 @@ public class InfluxV9MeasurementRepo implements MeasurementRepo {
influxV9Utils.filterPrivateTags(serie.getTags()));
for (String[] values : serie.getValues()) {
final int length = values[0].length();
final String millisecond = values[0].substring(20, length-1);
final String millisecond_3d = StringUtils.rightPad(millisecond, 3, '0');
final String timestamp = values[0].substring(0, 19) + '.' + millisecond_3d + 'Z';
final String timestamp = influxV9Utils.threeDigitMillisTimestamp(values[0]);
measurements.addMeasurement(
new Object[]{timestamp, Double.parseDouble(values[1]), getValueMeta(values)});
}

View File

@@ -15,6 +15,7 @@ package monasca.api.infrastructure.persistence.influxdb;
import com.google.inject.Inject;
import org.apache.commons.lang.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.format.ISODateTimeFormat;
@@ -258,4 +259,17 @@ public class InfluxV9Utils {
return filteredMap;
}
public String threeDigitMillisTimestamp(String origTimestamp) {
final int length = origTimestamp.length();
final String timestamp;
if (length == 20) {
timestamp = origTimestamp.substring(0, 19) + ".000Z";
} else {
final String millisecond = origTimestamp.substring(20, length - 1);
final String millisecond_3d = StringUtils.rightPad(millisecond, 3, '0');
timestamp = origTimestamp.substring(0, 19) + '.' + millisecond_3d + 'Z';
}
return timestamp;
}
}