From ba5934e3e18070f1a5b3774d96ccec9183bbb7af Mon Sep 17 00:00:00 2001
From: Clinton Alexander <clinton.alexander@r3cev.com>
Date: Mon, 19 Dec 2016 14:53:08 +0000
Subject: [PATCH] Object mapper for http utils is now created once instead of
 per request.

---
 .../src/main/kotlin/net/corda/testing/http/HttpUtils.kt  | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/test-utils/src/main/kotlin/net/corda/testing/http/HttpUtils.kt b/test-utils/src/main/kotlin/net/corda/testing/http/HttpUtils.kt
index 6125844465..bd20453c76 100644
--- a/test-utils/src/main/kotlin/net/corda/testing/http/HttpUtils.kt
+++ b/test-utils/src/main/kotlin/net/corda/testing/http/HttpUtils.kt
@@ -18,6 +18,9 @@ object HttpUtils {
                 .connectTimeout(5, TimeUnit.SECONDS)
                 .readTimeout(60, TimeUnit.SECONDS).build()
     }
+    val defaultMapper: ObjectMapper by lazy {
+        ObjectMapper().registerModule(JsonSupport.createJavaTimeModule()).registerModule(KotlinModule())
+    }
 
     fun putJson(url: URL, data: String) : Boolean {
         val body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data)
@@ -32,7 +35,7 @@ object HttpUtils {
     inline fun<reified T: Any> getJson(url: URL, params: Map<String, String> = mapOf()) : T {
         val paramString = if(params.isEmpty()) "" else "?" + params.map { "${it.key}=${it.value}" }.joinToString("&")
         val parameterisedUrl = URL(url.toExternalForm() + paramString)
-        return createDefaultMapper().readValue(parameterisedUrl, T::class.java)
+        return defaultMapper.readValue(parameterisedUrl, T::class.java)
     }
 
     private fun makeRequest(request: Request): Boolean {
@@ -44,8 +47,4 @@ object HttpUtils {
 
         return response.isSuccessful
     }
-
-    fun createDefaultMapper(): ObjectMapper {
-        return ObjectMapper().registerModule(JsonSupport.createJavaTimeModule()).registerModule(KotlinModule())
-    }
 }