Tested with version 2.11.1
case class Foo(value: Option[Long])
val mapper = new ObjectMapper() with ScalaObjectMapper
mapper.registerModule(DefaultScalaModule)
val json = """{ "value": "xx" }"""
val result = mapper.readValue[Foo](json)
println(result.value)
Instead of failing to deserialize the json (as it would occur without the option), it actually deserialize it and produces a weird object.
The println() outputs Some(xx) which does not make much sense for an Option[Long] ;-)
Using the debugger, I can see the actual runtime object in the Option is in fact a string.