Error:
Cannot instantiate process definition 3f8f5a24-5038-11e8-98c9-0242ac120014: Cannot convert value ‘2018-05-05T10:34:04.808039+00:00’ of type ‘Date’ to java type java.util.Date
Camunda 7.8.0
Camunda Spring Boot 2.3.0
Spring Boot 2.0.1
When trying to start process over REST API, the error is throwd:
Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type java.util.Date
from String “2018-05-05T10:34:04.808039+00:00”: not a valid representation (error: Failed to parse Date value ‘2018-05-05T10:34:04.808039+00:00’: Unparseable date: “2018-05-05T10:34:04.808039+00:00”)
at [Source: (String)"“2018-05-05T10:34:04.808039+00:00"”; line: 1, column: 1]
at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)
at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1548)
at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:910)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseDate(StdDeserializer.java:524)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseDate(StdDeserializer.java:467)
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateBasedDeserializer._parseDate(DateDeserializers.java:195)
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateDeserializer.deserialize(DateDeserializers.java:285)
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateDeserializer.deserialize(DateDeserializers.java:268)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4001)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2992)
at org.camunda.bpm.engine.rest.dto.VariableValueDto.toTypedValue(VariableValueDto.java:101)
… 122 more
I tried several ways to solve problem but nothing works:
-
Change the jackson date format property in application.yaml file:
spring:
jackson:
date-format: yyyy-MM-dd’T’HH:mm:ss.SSSSSSZ -
Override mapper bean in configuration component:
@Bean
public ObjectMapper mapper() {
ObjectMapper objectMapper = new ObjectMapper();
//objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
objectMapper.setDateFormat(new CustomDateFormat());
objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
return objectMapper;
}
As you can see, Spring Boot should use my custom CustomDateFormat class - but not.
I have no idea where comes this weird date from Camunda side when starting new process:
2018-05-05T10:34:04.808039+00:00
Tnx!
Erki