@@ -2,7 +2,7 @@ package com.fasterxml.jackson
2
2
package module .scala
3
3
package deser
4
4
5
- import com .fasterxml .jackson .annotation .JsonProperty
5
+ import com .fasterxml .jackson .annotation .{ JsonProperty , JsonSetter , Nulls }
6
6
import com .fasterxml .jackson .databind .annotation .JsonDeserialize
7
7
import com .fasterxml .jackson .databind .{DeserializationFeature , JsonMappingException , ObjectMapper , ObjectReader , PropertyNamingStrategy }
8
8
import com .fasterxml .jackson .module .scala .ser .{ClassWithOnlyUnitField , ClassWithUnitField }
@@ -68,6 +68,9 @@ object CaseClassDeserializerTest {
68
68
class NestedB (id : Int ) {
69
69
def x = id
70
70
}
71
+
72
+ case class ListHolder [T ](list : List [T ])
73
+ case class AnnotatedListHolder [T ](@ JsonSetter (nulls = Nulls .AS_EMPTY )list : List [T ])
71
74
}
72
75
73
76
class CaseClassDeserializerTest extends DeserializerTest {
@@ -193,4 +196,16 @@ class CaseClassDeserializerTest extends DeserializerTest {
193
196
val result = deserialize(input, classOf [ClassWithOnlyUnitField ])
194
197
result shouldEqual ClassWithOnlyUnitField (())
195
198
}
199
+
200
+ it should " support deserializing null input for list as empty list" ignore {
201
+ val input = """ {}"""
202
+ val result = deserialize(input, classOf [ListHolder [String ]])
203
+ result.list shouldBe null // ideally should be empty list, Scala users expect no nulls
204
+ }
205
+
206
+ it should " support deserializing null input for list as empty list (JsonSetter annotation)" in {
207
+ val input = """ {}"""
208
+ val result = deserialize(input, classOf [AnnotatedListHolder [String ]])
209
+ result.list shouldBe List .empty
210
+ }
196
211
}
0 commit comments