in ingestion-core/src/main/java/com/mozilla/telemetry/ingestion/core/util/Time.java [18:51]
public static Duration parseJavaDuration(String value) {
checkNotNull(value, "The specified duration must be a non-null value!");
Duration duration;
try {
// This is already an ISO-8601 duration.
duration = Duration.parse(value);
} catch (DateTimeParseException outer) {
String modifiedValue = value.toLowerCase().replaceAll("seconds", "s")
.replaceAll("second", "s").replaceAll("sec", "s").replaceAll("minutes", "m")
.replaceAll("minute", "m").replaceAll("mins", "m").replaceAll("min", "m")
.replaceAll("hours", "h").replaceAll("hour", "h").replaceAll("days", "dt")
.replaceAll("day", "dt").replaceAll("\\s+", "").toUpperCase();
if (!modifiedValue.contains("T")) {
modifiedValue = "T" + modifiedValue;
}
if (!modifiedValue.contains("P")) {
modifiedValue = "P" + modifiedValue;
}
if (modifiedValue.endsWith("T")) {
modifiedValue += "0s";
}
try {
duration = Duration.parse(modifiedValue);
} catch (java.time.format.DateTimeParseException e) {
throw new IllegalArgumentException(
"User-provided duration '" + value + "' was transformed to '" + modifiedValue
+ "', but java.time.Duration.parse() could not understand it.",
e);
}
}
return duration;
}