FasterXML / FasterXML/jackson-dataformat-xml

Jackson XML reading mixed sibling nodes "overwriting" issue

Offen
#712 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
631
Forks
246
Ø Merge
7 T. 9 Std.
Gemergte PRs (30 T.)
13

Beschreibung

Jackson seems to be overwriting the older sibling nodes if the order is mixed. See below test case. Seems to be a bug. Thanks.

@JacksonXmlRootElement
data class RootNode(
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "NodeA")
val nodeA: List,
@JacksonXmlProperty(localName = "NodeB")
val nodeB: NodeB
)

data class NodeA(
@JacksonXmlProperty(localName = "attr", isAttribute = true)
val attr: String
)

data class NodeB(
@JacksonXmlProperty(localName = "attr", isAttribute = true)
val attr: String
)

class ReadXMLTest {
@Test
fun canRead() {
val xml = """





""".trimIndent()

val xmlMapper = XmlMapper()
xmlMapper.registerModule(kotlinModule())

assertEquals(
RootNode(
listOf(NodeA("123"), NodeA("456")),
NodeB("ABC")
),
xmlMapper.readValue(xml)
)
}
}

This fails with

Expected :RootNode(nodeA=[NodeA(attr=123), NodeA(attr=456)], nodeB=NodeB(attr=ABC))
Actual :RootNode(nodeA=[NodeA(attr=456)], nodeB=NodeB(attr=ABC))

If the XML is like below, then it passes.





Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.