File tree 1 file changed +46
-0
lines changed
src/test/java/com/fasterxml/jackson/dataformat/xml/failing
1 file changed +46
-0
lines changed Original file line number Diff line number Diff line change
1
+ package com .fasterxml .jackson .dataformat .xml .failing ;
2
+
3
+ import com .fasterxml .jackson .dataformat .xml .XmlMapper ;
4
+ import com .fasterxml .jackson .dataformat .xml .XmlTestBase ;
5
+
6
+ public class XsiNil366Test extends XmlTestBase
7
+ {
8
+ // for [dataformat-xml#366]
9
+ protected static class Parent366 {
10
+ public Level1 level1 ;
11
+ }
12
+
13
+ protected static class Level1 {
14
+ public Level2 level2 ;
15
+ public String field ; // this should not be needed, but an unknown element is thrown without it
16
+ }
17
+
18
+ protected static class Level2 {
19
+ public String ignored ;
20
+ public String field ;
21
+ }
22
+
23
+ private final XmlMapper MAPPER = newMapper ();
24
+
25
+ // for [dataformat-xml#366]
26
+ public void testDoesNotAffectHierarchy () throws Exception
27
+ {
28
+ String xml = "<Parent xmlns:xsi=\" http://www.w3.org/2001/XMLSchema-instance\" >"
29
+ + "<level1>"
30
+ + "<level2>"
31
+ + "<ignored xsi:nil=\" true\" />"
32
+ + "<field>test-value</field>"
33
+ + "</level2>"
34
+ + "</level1>"
35
+ + "</Parent>" ;
36
+ Parent366 bean = MAPPER .readValue (xml , Parent366 .class );
37
+
38
+ assertNotNull (bean );
39
+
40
+ // this should not be set, but having an xsi:nil field before it causes it to set the next field on the wrong class
41
+ assertEquals ("test-value" , bean .level1 .field );
42
+
43
+ // fails because field is set on level1 instead of on level2
44
+ assertEquals ("test-value" , bean .level1 .level2 .field );
45
+ }
46
+ }
You can’t perform that action at this time.
0 commit comments