diff -Nru json4s-3.2.7_2.10/jackson/src/main/scala/org/json4s/jackson/JsonMethods.scala json4s-3.2.7_2.10.jackson/jackson/src/main/scala/org/json4s/jackson/JsonMethods.scala --- json4s-3.2.7_2.10/jackson/src/main/scala/org/json4s/jackson/JsonMethods.scala 2014-02-17 18:58:53.000000000 +0100 +++ json4s-3.2.7_2.10.jackson/jackson/src/main/scala/org/json4s/jackson/JsonMethods.scala 2015-08-09 07:53:35.132228673 +0200 @@ -1,7 +1,7 @@ package org.json4s package jackson -import com.fasterxml.jackson.databind.{ObjectMapper, DeserializationFeature} +import com.fasterxml.jackson.databind.{ObjectWriter, JsonNode, ObjectMapper, DeserializationFeature} import util.control.Exception.allCatch trait JsonMethods extends org.json4s.JsonMethods[JValue] { @@ -32,7 +32,7 @@ def compact(d: JValue): String = mapper.writeValueAsString(d) def pretty(d: JValue): String = { - val writer = mapper.writerWithDefaultPrettyPrinter() + val writer = mapper.writerWithDefaultPrettyPrinter[ObjectWriter]() writer.writeValueAsString(d) } diff -Nru json4s-3.2.7_2.10/jackson/src/main/scala/org/json4s/jackson/Json.scala json4s-3.2.7_2.10.jackson/jackson/src/main/scala/org/json4s/jackson/Json.scala --- json4s-3.2.7_2.10/jackson/src/main/scala/org/json4s/jackson/Json.scala 2014-02-17 18:58:53.000000000 +0100 +++ json4s-3.2.7_2.10.jackson/jackson/src/main/scala/org/json4s/jackson/Json.scala 2015-08-09 07:50:12.847985408 +0200 @@ -1,7 +1,7 @@ package org.json4s package jackson -import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.databind.{ObjectWriter, ObjectMapper} import java.io.{Writer => JWriter} object Json { @@ -19,10 +19,10 @@ } def writePretty[A <: AnyRef](a: A): String = - mapper.writerWithDefaultPrettyPrinter.writeValueAsString(decompose(a)) + mapper.writerWithDefaultPrettyPrinter[ObjectWriter].writeValueAsString(decompose(a)) def writePretty[A <: AnyRef, W <: JWriter](a: A, out: W): W = { - mapper.writerWithDefaultPrettyPrinter.writeValue(out, decompose(a)) + mapper.writerWithDefaultPrettyPrinter[ObjectWriter].writeValue(out, decompose(a)) out } diff -Nru json4s-3.2.7_2.10/jackson/src/main/scala/org/json4s/jackson/Serialization.scala json4s-3.2.7_2.10.jackson/jackson/src/main/scala/org/json4s/jackson/Serialization.scala --- json4s-3.2.7_2.10/jackson/src/main/scala/org/json4s/jackson/Serialization.scala 2014-02-17 18:58:53.000000000 +0100 +++ json4s-3.2.7_2.10.jackson/jackson/src/main/scala/org/json4s/jackson/Serialization.scala 2015-08-09 07:57:41.502345554 +0200 @@ -1,6 +1,8 @@ package org.json4s package jackson +import com.fasterxml.jackson.databind.ObjectWriter + import scala.reflect.Manifest import java.io.OutputStream @@ -35,12 +37,12 @@ /** Serialize to String (pretty format). */ def writePretty[A <: AnyRef](a: A)(implicit formats: Formats): String = - JsonMethods.mapper.writerWithDefaultPrettyPrinter().writeValueAsString(Extraction.decompose(a)(formats)) + JsonMethods.mapper.writerWithDefaultPrettyPrinter[ObjectWriter].writeValueAsString(Extraction.decompose(a)(formats)) /** Serialize to Writer (pretty format). */ def writePretty[A <: AnyRef, W <: Writer](a: A, out: W)(implicit formats: Formats): W = { - JsonMethods.mapper.writerWithDefaultPrettyPrinter.writeValue(out, Extraction.decompose(a)(formats)) + JsonMethods.mapper.writerWithDefaultPrettyPrinter[ObjectWriter].writeValue(out, Extraction.decompose(a)(formats)) out } diff -Nru json4s-3.2.7_2.10/jackson/src/main/scala/org/json4s/jackson/Types.scala json4s-3.2.7_2.10.jackson/jackson/src/main/scala/org/json4s/jackson/Types.scala --- json4s-3.2.7_2.10/jackson/src/main/scala/org/json4s/jackson/Types.scala 2014-02-17 18:58:53.000000000 +0100 +++ json4s-3.2.7_2.10.jackson/jackson/src/main/scala/org/json4s/jackson/Types.scala 2015-08-09 08:00:31.848129300 +0200 @@ -17,9 +17,11 @@ if (manifest.erasure.isArray) { ArrayType.construct(factory.constructType(manifest.erasure.getComponentType), null, null) } else { - factory.constructParametricType( - manifest.erasure, - manifest.typeArguments.map {m => build(factory, m)}.toArray: _*) + val clazz = manifest.runtimeClass + factory.constructParametrizedType( + clazz, + clazz, + manifest.typeArguments.map (m => build(factory, m)): _*) } } }