File tree 3 files changed +42
-1
lines changed
main/java/com/fasterxml/jackson/datatype/jdk8
test/java/com/fasterxml/jackson/datatype/jdk8
3 files changed +42
-1
lines changed Original file line number Diff line number Diff line change @@ -60,7 +60,9 @@ public Optional<?> referenceValue(Object contents) {
60
60
61
61
@ Override
62
62
public Object getReferenced (Optional <?> reference ) {
63
- return reference .get ();
63
+ // 23-Apr-2021, tatu: [modules-java8#214] Need to support empty
64
+ // for merging too
65
+ return reference .orElse (null );
64
66
}
65
67
66
68
@ Override // since 2.9
Original file line number Diff line number Diff line change
1
+ package com .fasterxml .jackson .datatype .jdk8 ;
2
+
3
+ import java .util .Arrays ;
4
+ import java .util .List ;
5
+ import java .util .Optional ;
6
+
7
+ import com .fasterxml .jackson .annotation .JsonMerge ;
8
+ import com .fasterxml .jackson .databind .ObjectMapper ;
9
+
10
+ public class OptionalMergeTest extends ModuleTestBase
11
+ {
12
+ // [modules-java8#214]
13
+ static class OptionalListWrapper {
14
+ @ JsonMerge
15
+ public Optional <List <String >> list = Optional .empty ();
16
+ }
17
+
18
+ private final ObjectMapper MAPPER = mapperWithModule ();
19
+
20
+ // [modules-java8#214]: ReferenceType of List, merge
21
+ public void testMergeToListViaRef () throws Exception
22
+ {
23
+ OptionalListWrapper base = MAPPER .readValue (aposToQuotes ("{'list':['a']}" ),
24
+ OptionalListWrapper .class );
25
+ assertNotNull (base .list );
26
+ assertEquals (Arrays .asList ("a" ), base .list .get ());
27
+
28
+ OptionalListWrapper merged = MAPPER .readerForUpdating (base )
29
+ .readValue (aposToQuotes ("{'list':['b']}" ));
30
+ assertSame (base , merged );
31
+ assertEquals (Arrays .asList ("a" , "b" ), base .list .get ());
32
+ }
33
+ }
Original file line number Diff line number Diff line change @@ -8,6 +8,12 @@ Modules:
8
8
=== Releases ===
9
9
------------------------------------------------------------------------
10
10
11
+ 2.12.4 (not yet released)
12
+
13
+ #214 : readerForUpdating(objectToUpdate).readValue(json) behaves unexpectedly
14
+ on Optional<List>
15
+ (reported by jc84-dev@github)
16
+
11
17
2.12.3 (12 -Apr-2021 )
12
18
13
19
#207 : Fail to serialize `TemporalAdjuster` type with 2.12
You can’t perform that action at this time.
0 commit comments