Created
October 26, 2016 11:05
-
-
Save dstarcev/a829685618d3c638f462028e48690ce8 to your computer and use it in GitHub Desktop.
Jasckson with Kotlin module fails to deserialize an object with 32 properties.
Last property is ignored.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper | |
import org.junit.Assert | |
import org.junit.Test | |
class KotlinJacksonBug { | |
@Test fun `map 32 properties`(){ | |
// given | |
val json = """{"prop1":true,"prop2":true,"prop3":true,"prop4":true,"prop5":true,"prop6":true,"prop7":true,"prop8":true,"prop9":true,"prop10":true,"prop11":true,"prop12":true,"prop13":true,"prop14":true,"prop15":true,"prop16":true,"prop17":true,"prop18":true,"prop19":true,"prop20":true,"prop21":true,"prop22":true,"prop23":true,"prop24":true,"prop25":true,"prop26":true,"prop27":true,"prop28":true,"prop29":true,"prop30":true,"prop31":true,"prop32":true}""" | |
val mapper = jacksonObjectMapper() | |
// when | |
val data = mapper.readValue(json, TestData::class.java) | |
val rejson = mapper.writeValueAsString(data) | |
// then | |
Assert.assertEquals(json, rejson) | |
} | |
private class TestData( | |
var prop1: Boolean = false, | |
var prop2: Boolean = false, | |
var prop3: Boolean = false, | |
var prop4: Boolean = false, | |
var prop5: Boolean = false, | |
var prop6: Boolean = false, | |
var prop7: Boolean = false, | |
var prop8: Boolean = false, | |
var prop9: Boolean = false, | |
var prop10: Boolean = false, | |
var prop11: Boolean = false, | |
var prop12: Boolean = false, | |
var prop13: Boolean = false, | |
var prop14: Boolean = false, | |
var prop15: Boolean = false, | |
var prop16: Boolean = false, | |
var prop17: Boolean = false, | |
var prop18: Boolean = false, | |
var prop19: Boolean = false, | |
var prop20: Boolean = false, | |
var prop21: Boolean = false, | |
var prop22: Boolean = false, | |
var prop23: Boolean = false, | |
var prop24: Boolean = false, | |
var prop25: Boolean = false, | |
var prop26: Boolean = false, | |
var prop27: Boolean = false, | |
var prop28: Boolean = false, | |
var prop29: Boolean = false, | |
var prop30: Boolean = false, | |
var prop31: Boolean = false, | |
var prop32: Boolean = false | |
) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment