Commit 3f96d6e
committed
Fix NullPointerException resolving type hints for JSON with duplicate properties.
GenericJacksonJsonRedisSerializer.TypeResolver.readTree(...) built the JSON node
tree using a DeserializationContext from ObjectMapper._deserializationContext()
that was never bound to the parser, so its stream-read capabilities stayed
uninitialized. Deserializing any value whose JSON contains a duplicate property
then failed with a NullPointerException in
BaseNodeDeserializer._handleDuplicateProperty, which consults
StreamReadCapability.DUPLICATE_PROPERTIES.
Duplicate property names are valid JSON (RFC 8259) and occur in practice, for
example in values written by the Jackson 2 serializer. Bind the parser to the
context (as ObjectMapper._readTreeAndClose does via assignAndReturnParser) so the
type-hint tree scan handles them.
Closes #3396
Signed-off-by: Tomaz Cerar <tomaz@cerar.net>1 parent 3e5d97a commit 3f96d6e
2 files changed
Lines changed: 23 additions & 5 deletions
File tree
- src
- main/java/org/springframework/data/redis/serializer
- test/java/org/springframework/data/redis/serializer
Lines changed: 8 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | 26 | | |
28 | 27 | | |
29 | 28 | | |
30 | 29 | | |
31 | 30 | | |
32 | 31 | | |
33 | 32 | | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
| 71 | + | |
71 | 72 | | |
72 | 73 | | |
73 | 74 | | |
| |||
503 | 504 | | |
504 | 505 | | |
505 | 506 | | |
506 | | - | |
507 | | - | |
508 | | - | |
509 | | - | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
510 | 513 | | |
511 | 514 | | |
512 | 515 | | |
| |||
Lines changed: 15 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
| |||
60 | 61 | | |
61 | 62 | | |
62 | 63 | | |
| 64 | + | |
63 | 65 | | |
64 | 66 | | |
65 | 67 | | |
| |||
178 | 180 | | |
179 | 181 | | |
180 | 182 | | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
181 | 196 | | |
182 | 197 | | |
183 | 198 | | |
| |||
0 commit comments