Author: mmusaji
Date: 2013-01-09 05:37:23 -0500 (Wed, 09 Jan 2013)
New Revision: 17225
Modified:
thirdparty/cxf/branches/cxf-2.2.12-patch02_JBPAPP-10129/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/Utils.java
Log:
[JBPAPP-10129] Merged patch from CXF-4735. Pick up @XMLJavaTypeAdapter on Setters in
Exception classes
Modified:
thirdparty/cxf/branches/cxf-2.2.12-patch02_JBPAPP-10129/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/Utils.java
===================================================================
---
thirdparty/cxf/branches/cxf-2.2.12-patch02_JBPAPP-10129/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/Utils.java 2013-01-09
10:14:59 UTC (rev 17224)
+++
thirdparty/cxf/branches/cxf-2.2.12-patch02_JBPAPP-10129/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/Utils.java 2013-01-09
10:37:23 UTC (rev 17225)
@@ -147,21 +147,25 @@
}
private static boolean isGetter(Method m) {
- Class<?> declaringClass = m.getDeclaringClass();
- if (m.getReturnType() != Void.class && m.getParameterTypes().length == 0)
{
- final int index = getterIndex(m.getName());
- if (index != -1) {
- String setterName = "set" + m.getName().substring(index);
- Class<?> paramTypes = m.getReturnType();
- Method setter = getDeclaredMethod(declaringClass, setterName,
paramTypes);
- if (setter != null &&
!setter.isAnnotationPresent(XmlTransient.class)) {
- return true;
- }
+ if (m.getReturnType() != Void.class && m.getReturnType() != Void.TYPE
&& m.getParameterTypes().length == 0) {
+ Method setter = getSetter(m);
+ if (setter != null) {
+ return !setter.isAnnotationPresent(XmlTransient.class);
}
}
return false;
}
+ private static Method getSetter(Method m) {
+ final int index = getterIndex(m.getName());
+ if (index != -1) {
+ String setterName = "set" + m.getName().substring(index);
+ Class<?> paramTypes = m.getReturnType();
+ return getDeclaredMethod(m.getDeclaringClass(), setterName, paramTypes);
+ }
+ return null;
+ }
+
private static boolean isSetter(Method m) {
Class<?> declaringClass = m.getDeclaringClass();
boolean isVoidReturnType = m.getReturnType() == Void.class || m.getReturnType()
== Void.TYPE;
@@ -263,6 +267,10 @@
static XmlJavaTypeAdapter getMethodXJTA(final Method m) {
XmlJavaTypeAdapter adapter = m.getAnnotation(XmlJavaTypeAdapter.class);
if (adapter == null) {
+ Method setter = getSetter(m);
+ adapter = setter.getAnnotation(XmlJavaTypeAdapter.class);
+ }
+ if (adapter == null) {
adapter = m.getReturnType().getAnnotation(XmlJavaTypeAdapter.class);
}
if (adapter == null) {