in jackson/src/main/scala/com/twitter/finatra/jackson/serde/JodaDatetimeDeserializer.scala [39:61]
private def handleToken(
token: JsonToken,
jp: JsonParser,
ctxt: DeserializationContext
): DateTime = token match {
case JsonToken.VALUE_NUMBER_INT =>
val value: Long = jp.getLongValue
parseFromLong(ctxt, value)
case JsonToken.VALUE_STRING =>
val value: String = jp.getText.trim
if (value.isEmpty) {
throw JsonMappingException.from(ctxt, "field cannot be empty")
} else {
// First, attempt to convert as a String value (for backwards-compatibility),
// Long millis will fail and we then attempt to parse with value.toLong
Try(this._format.createParser(ctxt).parseDateTime(value)) match {
case Return(result) => result
case _ => parseFromLong(ctxt, value.toLong)
}
}
case _ =>
this._handleNotNumberOrString(jp, ctxt)
}