Jackson XML reading mixed sibling nodes "overwriting" issue
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par le ReadXMLTest fourni et reproduisez le cas de frères et sœurs mixtes avec XmlMapper et kotlinModule(). Comparez l’ordre en échec avec l’ordre passant, puis suivez le comportement de désérialisation XML de Jackson impliqué ; le travail est terminé lorsque les deux éléments NodeA sont conservés et que le test passe.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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<NodeA>,
@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 = """
<RootNode>
<NodeA attr="123"/>
<NodeB attr="ABC"/>
<NodeA attr="456"/>
</RootNode>
""".trimIndent()
val xmlMapper = XmlMapper()
xmlMapper.registerModule(kotlinModule())
assertEquals(
RootNode(
listOf(NodeA("123"), NodeA("456")),
NodeB("ABC")
),
xmlMapper.readValue<RootNode>(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.
<RootNode>
<NodeA attr="123"/>
<NodeA attr="456"/>
<NodeB attr="ABC"/>
</RootNode>
- Langage dominant
- Java
- Étoiles
- 636
- Forks
- 250
- Merge moyen
- 7 h 10 min
- PR mergées (30 j)
- 8
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de FasterXML/jackson-dataformat-xml
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
FasterXML/jackson-dataformat-xml#931 · 3 commentaires ·
-
XmlMapper with `FAIL_ON_UNKNOWN_PROPERTIES` fails on whitespace-only elementPeut-être pris @arimu1 l’a pris il y a 89 jours. Ouverteto-evaluate
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
-
3.x
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
FasterXML/jackson-dataformat-xml#787 · 1 commentaire ·
Toutes les issues de FasterXML/jackson-dataformat-xml
Issues similaires
-
bug(core): skip_nodes.json is missing SELECT and PRE, causing Python and Java to insert separators into dropdown options and preformatted textPeut-être pris @Bhumit267 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
ExceptionThrowShouldUseContext: NullPointerException on a catch block inside an annotation typePeut-être pris @Carbon14-48 l’a pris aujourd’hui. Ouverteapproved
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
checkstyle/checkstyle#22784 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
ASSERT-KTH/depclean#591 ·
Les mainteneurs répondent en général sous 1 jour
-
Api537FlareFlameModel.setStackHeightM accepts a negative heightPeut-être pris @EvenSol l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour