[ https://issues.apache.org/jira/browse/CXF-2779?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp resolved CXF-2779. ------------------------------ Resolution: Invalid Fix Version/s: Invalid Assignee: Daniel Kulp I did fix the issue of using getField instead of getDeclaredField. HOWEVER, the @XmlAttribute thing is not fixed as it would be against the JAX-WS spec and introduce differences in behavior between CXF and other JAX-WS implementations (including the reference implementation). If you want/need information to be in attributes, you must use a fault bean and use the getFaultInfo way of doing it. > CXF ignores @XmlAttribute when serializing exception > ---------------------------------------------------- > > Key: CXF-2779 > URL: https://issues.apache.org/jira/browse/CXF-2779 > Project: CXF > Issue Type: Bug > Components: JAXB Databinding > Affects Versions: 2.2.7 > Reporter: Chris Wilson > Assignee: Daniel Kulp > Fix For: Invalid > > Attachments: CxfExceptionFieldPropagationTest.java, > CxfExceptionFieldPropagationTest.java > > > JAXBEncoderDecoder#unmarshallException} doesn't normally write to private > fields, so exception data isn't propagated, unless: > * either the {@link @XmlAccessorType} annotation is present on the class and > used to set the default access method to something other than the default > XmlAccessType#PUBLIC_MEMBER, > * or the {@link XmlAttribute} annotation is present on the individual private > members that you want to be serialized. > The [Caucho > documentation|http://www.caucho.com/resin-3.1/doc/jaxb-annotations.xtp#@XmlAttribute] > says: > bq. Adding @XmlAttribute to a private field will mark that field as > serializable. > and they give the following example which clearly implies that no accessors > are required: > {code} > @XmlRootElement > class Bean { > @XmlAttribute("sample-field") > private String _myField; > } > {code} > Nevertheless: > * JAXBEncoderDecoder#marshallException calls > org.apache.cxf.jaxb.JAXBContextInitializer#isFieldAccepted to see whether the > field should be copied > * that method fails to check for the XmlAttribute annotation on the field > * so its value is never serialized or deserialized > and the attached test case fails unless: > * either a public getter and setter are provided to turn the field into a > property, > * or the access type is changed to something other than PUBLIC_MEMBER. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira