Skip to content

JacksonJsonRedisSerializer in Spring Data Redis 4.0.0 breaks deserialization due to use of unsafeSimpleType #3271

@duyvhh

Description

@duyvhh

In Spring Data Redis 3.5.x, Jackson2JsonRedisSerializer(ObjectMapper, Class<T>) correctly deserializes JSON using:

TypeFactory.defaultInstance().constructType(clazz);

In 4.0.0, the new JacksonJsonRedisSerializer(ObjectMapper, Class<T>) instead uses:

TypeFactory.unsafeSimpleType(clazz);

This produces an incomplete JavaType and causes deserialization to fail for simple DTOs that previously worked.

Suggestion

Replace:

TypeFactory.unsafeSimpleType(clazz)

with:

TypeFactory.defaultInstance().constructType(clazz)

Environment

  • Spring Data Redis: 4.0.0
  • Jedis: 7.1.0
  • Jackson: 3.0.2
  • Java: 21
  • RedisTemplate with JacksonJsonRedisSerializer

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions