From cc870544206d44f0a17986c025e3ab8c5c049c2b Mon Sep 17 00:00:00 2001 From: Richard Wilson Date: Wed, 27 Oct 2021 11:29:38 -0700 Subject: [PATCH] Replace LinkedHashMap with TreeMap in Kotlin Json Adapter --- .../com/squareup/moshi/kotlin/reflect/KotlinJsonAdapter.kt | 3 ++- .../com/squareup/moshi/kotlin/reflect/KotlinJsonAdapterTest.kt | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/kotlin/reflect/src/main/java/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapter.kt b/kotlin/reflect/src/main/java/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapter.kt index 0db237e8d..da495f9f2 100644 --- a/kotlin/reflect/src/main/java/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapter.kt +++ b/kotlin/reflect/src/main/java/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapter.kt @@ -27,6 +27,7 @@ import com.squareup.moshi.internal.Util.resolve import com.squareup.moshi.rawType import java.lang.reflect.Modifier import java.lang.reflect.Type +import java.util.TreeMap import kotlin.reflect.KFunction import kotlin.reflect.KMutableProperty1 import kotlin.reflect.KParameter @@ -227,7 +228,7 @@ public class KotlinJsonAdapterFactory : JsonAdapter.Factory { val parametersByName = constructor.parameters.associateBy { it.name } constructor.isAccessible = true - val bindingsByName = LinkedHashMap>() + val bindingsByName = TreeMap>() for (property in rawTypeKotlin.memberProperties) { val parameter = parametersByName[property.name] diff --git a/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapterTest.kt b/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapterTest.kt index 23d857c7d..39e6554ab 100644 --- a/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapterTest.kt +++ b/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapterTest.kt @@ -391,7 +391,7 @@ class KotlinJsonAdapterTest { val encoded = SubtypeProperties() encoded.a = 3 encoded.b = 5 - assertThat(jsonAdapter.toJson(encoded)).isEqualTo("""{"b":5,"a":3}""") + assertThat(jsonAdapter.toJson(encoded)).isEqualTo("""{"a":3,"b":5}""") val decoded = jsonAdapter.fromJson("""{"a":4,"b":6}""")!! assertThat(decoded.a).isEqualTo(4)