StateMachine.json() timestamp formatting error
Step Function documentation (https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-wait-state.html) states Timestamps must conform to the RFC3339 profile of ISO 8601, with the further restrictions that an uppercase T must separate the date and time portions, and an uppercase Z must denote that a numeric time zone offset is not present, for example, 2016-08-18T17:33:00Z., however when calling StateMachine.json() on a state machine which utilizes a timestamp there appears to be a formatting error because the joda time parser being used expects hh:mm:ss.fractionZ and is not parsing hh:mm:ssZ because it considers the 'Z' at that position to be invalid.
SDK version: 1.11.604
State machine to reproduce:
{
"StartAt": "TestTime",
"States": {
"TestTime": {
"Type": "Wait",
"Timestamp": "2016-03-14T01:59:00Z",
"Next": "HelloWorld"
},
"HelloWorld": {
"Type": "Pass",
"Result": "Hello World!",
"End": true
}
}
}
Corresponding stack trace:
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Invalid format: "2016-03-14T01:59:00Z" is malformed at "Z" (through reference chain: com.amazonaws.services.stepfunctions.builder.StateMachine$Builder["States"]->java.util.LinkedHashMap["TestTime"]->com.amazonaws.services.stepfunctions.builder.states.WaitState$Builder["Timestamp"])
at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:394)
at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:353)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapAndThrow(BeanDeserializerBase.java:1711)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeWithUnwrapped(BeanDeserializer.java:643)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:321)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:194)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:161)
at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId(AsPropertyTypeDeserializer.java:130)
at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:97)
at com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:254)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:529)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:364)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:29)
at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:138)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4013)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3004)
at com.amazonaws.services.stepfunctions.builder.StateMachine.fromJson(StateMachine.java:134)
... 114 common frames omitted
Caused by: java.lang.IllegalArgumentException: Invalid format: "2016-03-14T01:59:00Z" is malformed at "Z"
at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:945)
at com.amazonaws.services.stepfunctions.builder.internal.DateModule.fromJson(DateModule.java:62)
at com.amazonaws.services.stepfunctions.builder.internal.DateModule$2.deserialize(DateModule.java:56)
at com.amazonaws.services.stepfunctions.builder.internal.DateModule$2.deserialize(DateModule.java:51)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeWithUnwrapped(BeanDeserializer.java:641)
Debugger screenshot:

Apologies for the long silence here @jkoe-r7. I can see the Invalid format error as well, marking as a bug.
Even though the StepFunctions documentation example does not show the fractional seconds, specifying a timestamp with them (like 2016-08-18T17:33:00.00Z) also works in the State Machine.
Hi,can I get a pull request? Is this issue still open, I want to work on this to solve the issue