Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fail gracefully when a primitive value is absent. (#1445)
Without this we get an AssertionError, which is the wrong exception type for a JSON schema mismatch: java.lang.AssertionError: java.lang.NullPointerException: Cannot invoke "java.lang.Number.intValue()" because the return value of "sun.invoke.util.ValueConversions.primitiveConversion(sun.invoke.util.Wrapper, Object, boolean)" is null at com.squareup.moshi.RecordJsonAdapter.fromJson(RecordJsonAdapter.java:168) at com.squareup.moshi.internal.NullSafeJsonAdapter.fromJson(NullSafeJsonAdapter.java:41) at com.squareup.moshi.JsonAdapter.fromJson(JsonAdapter.java:70) at com.squareup.moshi.records.RecordsTest.absentPrimitiveFails(RecordsTest.java:257) Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Number.intValue()" because the return value of "sun.invoke.util.ValueConversions.primitiveConversion(sun.invoke.util.Wrapper, Object, boolean)" is null at java.base/sun.invoke.util.ValueConversions.unboxInteger(ValueConversions.java:81) at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732) at com.squareup.moshi.RecordJsonAdapter.fromJson(RecordJsonAdapter.java:156) ... 46 more
- Loading branch information