From 1ad9f1c9857ad54f1413efcf1e6dc9ff86e4f68c Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Thu, 6 Oct 2016 11:09:05 +0300 Subject: [PATCH] Fix serialVersionUID for EmptyMap and EmptySet Otherwise removal of redundant special stubs leads to InvalidClassException during deserialization --- libraries/stdlib/src/kotlin/collections/Maps.kt | 2 ++ libraries/stdlib/src/kotlin/collections/Sets.kt | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libraries/stdlib/src/kotlin/collections/Maps.kt b/libraries/stdlib/src/kotlin/collections/Maps.kt index 5fc02a8bfcd..cd8cd063658 100644 --- a/libraries/stdlib/src/kotlin/collections/Maps.kt +++ b/libraries/stdlib/src/kotlin/collections/Maps.kt @@ -7,6 +7,8 @@ import java.io.Serializable import java.util.* private object EmptyMap : Map, Serializable { + private const val serialVersionUID: Long = 8246714829545688274 + override fun equals(other: Any?): Boolean = other is Map<*,*> && other.isEmpty() override fun hashCode(): Int = 0 override fun toString(): String = "{}" diff --git a/libraries/stdlib/src/kotlin/collections/Sets.kt b/libraries/stdlib/src/kotlin/collections/Sets.kt index 013c9f76b4b..4eeb5f5c61c 100644 --- a/libraries/stdlib/src/kotlin/collections/Sets.kt +++ b/libraries/stdlib/src/kotlin/collections/Sets.kt @@ -8,6 +8,8 @@ import java.util.* internal object EmptySet : Set, Serializable { + private const val serialVersionUID: Long = 3406603774387020532 + override fun equals(other: Any?): Boolean = other is Set<*> && other.isEmpty() override fun hashCode(): Int = 0 override fun toString(): String = "[]" @@ -80,4 +82,4 @@ internal fun Set.optimizeReadOnlySet() = when (size) { 0 -> emptySet() 1 -> setOf(iterator().next()) else -> this -} \ No newline at end of file +}