[ https://issues.apache.org/jira/browse/CXF-6656?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bernhard Mähr updated CXF-6656: ------------------------------- Affects Version/s: 3.1.5 > [Regression] Inheritance of exceptions produces marshalling problems > -------------------------------------------------------------------- > > Key: CXF-6656 > URL: https://issues.apache.org/jira/browse/CXF-6656 > Project: CXF > Issue Type: Bug > Affects Versions: 3.1.3, 3.1.5 > Reporter: Bernhard Mähr > > We have services throwing exceptions inherited from super classes. > For example: > {code} > public class MyException extends org.springframework.dao.DataAccessException > { .. } > {code} > Throwing this exception leads to > Caused by: javax.xml.bind.JAXBException: java.lang.Throwable is not known to > this context > at > com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:613) > at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.getBeanInfo(UnmarshallerImpl.java:599) > at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:394) > at > org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshallException(JAXBEncoderDecoder.java:582) > The problem is the method getMostSpecificCause returning an object of type > Throwable. > In older versions (2.4.10) the superclasses of the exception were not > processed by JAXBEncoderDecoder.marshallException, only the getters of the > actual class. > Now the method Utils.getGetters is used to get the list of getters and it > returns also getters of superclasses. > It is not possible to avoid marshalling of the method getMostSpecificCause > with XmlTransient because even if it is overidden in the actual class, > Utils.getGetters returns the method off the superclass. This is because only > annotations of the method of the superclass are checked. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)