From dfaf3405b2aca28779a79d4e2c266835319c656a Mon Sep 17 00:00:00 2001 From: Eric Cochran Date: Mon, 30 Apr 2018 18:18:34 -0700 Subject: [PATCH] Fix path for non-null value message. --- .../com/squareup/moshi/kotlin/KotlinJsonAdapter.kt | 14 ++++++-------- .../squareup/moshi/kotlin/KotlinJsonAdapterTest.kt | 4 ++-- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/kotlin/src/main/java/com/squareup/moshi/kotlin/KotlinJsonAdapter.kt b/kotlin/src/main/java/com/squareup/moshi/kotlin/KotlinJsonAdapter.kt index 922cc11..3da2f77 100644 --- a/kotlin/src/main/java/com/squareup/moshi/kotlin/KotlinJsonAdapter.kt +++ b/kotlin/src/main/java/com/squareup/moshi/kotlin/KotlinJsonAdapter.kt @@ -46,7 +46,7 @@ private val KOTLIN_METADATA = Class.forName("kotlin.Metadata") as Class( } values[index] = binding.adapter.fromJson(reader) + + if (values[index] == null && !binding.property.returnType.isMarkedNullable) { + throw JsonDataException( + "Non-null value '${binding.property.name}' was null at ${reader.path}") + } } reader.endObject() @@ -90,9 +95,6 @@ internal class KotlinJsonAdapter( "Required value '${constructor.parameters[i].name}' missing at ${reader.path}") } values[i] = null // Replace absent with null. - } else if (values[i] == null && !constructor.parameters[i].type.isMarkedNullable) { - throw JsonDataException("Non-null value '${constructor.parameters[i].name}' " + - "was null at ${reader.path}") } } @@ -103,10 +105,6 @@ internal class KotlinJsonAdapter( for (i in constructorSize until bindings.size) { val binding = bindings[i]!! val value = values[i] - if (value == null && !binding.property.returnType.isMarkedNullable) { - throw JsonDataException("Non-null value '${binding.property.name}' " + - "was null at ${reader.path}") - } binding.set(result, value) } diff --git a/kotlin/src/test/java/com/squareup/moshi/kotlin/KotlinJsonAdapterTest.kt b/kotlin/src/test/java/com/squareup/moshi/kotlin/KotlinJsonAdapterTest.kt index e1111ae..8494c2a 100644 --- a/kotlin/src/test/java/com/squareup/moshi/kotlin/KotlinJsonAdapterTest.kt +++ b/kotlin/src/test/java/com/squareup/moshi/kotlin/KotlinJsonAdapterTest.kt @@ -148,7 +148,7 @@ class KotlinJsonAdapterTest { jsonAdapter.fromJson("{\"a\":null}") fail() } catch (expected: JsonDataException) { - assertThat(expected).hasMessage("Non-null value 'a' was null at \$") + assertThat(expected).hasMessage("Non-null value 'a' was null at \$.a") } } @@ -162,7 +162,7 @@ class KotlinJsonAdapterTest { jsonAdapter.fromJson("{\"a\":null}") fail() } catch (expected: JsonDataException) { - assertThat(expected).hasMessage("Non-null value 'a' was null at \$") + assertThat(expected).hasMessage("Non-null value 'a' was null at \$.a") } }