Return-Path: X-Original-To: apmail-cxf-commits-archive@www.apache.org Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 15C6CE261 for ; Fri, 18 Jan 2013 06:09:33 +0000 (UTC) Received: (qmail 40114 invoked by uid 500); 18 Jan 2013 06:09:33 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 39982 invoked by uid 500); 18 Jan 2013 06:09:33 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 39969 invoked by uid 99); 18 Jan 2013 06:09:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 Jan 2013 06:09:32 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 Jan 2013 06:09:27 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id AA99D2388A2C; Fri, 18 Jan 2013 06:09:01 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1435036 - in /cxf/branches/2.7.x-fixes: ./ rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/Utils.java Date: Fri, 18 Jan 2013 06:09:01 -0000 To: commits@cxf.apache.org From: ema@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130118060901.AA99D2388A2C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ema Date: Fri Jan 18 06:09:01 2013 New Revision: 1435036 URL: http://svn.apache.org/viewvc?rev=1435036&view=rev Log: Merged revisions 1435034 via svnmerge from https://svn.apache.org/repos/asf/cxf/trunk ........ r1435034 | ema | 2013-01-18 14:03:23 +0800 (Fri, 18 Jan 2013) | 1 line CXF-4735:@XmlJavaTypeAdapter ignored on exception setters(Patch from Richard) ........ Modified: cxf/branches/2.7.x-fixes/ (props changed) cxf/branches/2.7.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/Utils.java Propchange: cxf/branches/2.7.x-fixes/ ------------------------------------------------------------------------------ Merged /cxf/trunk:r1435034 Propchange: cxf/branches/2.7.x-fixes/ ------------------------------------------------------------------------------ --- svnmerge-integrated (original) +++ svnmerge-integrated Fri Jan 18 06:09:01 2013 @@ -1 +1 @@ -/cxf/trunk:1-1430398,1430564,1430881-1430882,1430905,1430965,1430976,1431315,1431604-1431607,1432070,1432236,1432798,1433007,1433033,1433135,1433305,1433347,1433895,1434042,1434124,1434564 +/cxf/trunk:1-1430398,1430564,1430881-1430882,1430905,1430965,1430976,1431315,1431604-1431607,1432070,1432236,1432798,1433007,1433033,1433135,1433305,1433347,1433895,1434042,1434124,1434564,1435034 Modified: cxf/branches/2.7.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/Utils.java URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/Utils.java?rev=1435036&r1=1435035&r2=1435036&view=diff ============================================================================== --- cxf/branches/2.7.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/Utils.java (original) +++ cxf/branches/2.7.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/Utils.java Fri Jan 18 06:09:01 2013 @@ -148,22 +148,25 @@ final class Utils { } 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 false; - } - 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 true; } 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(); @@ -266,6 +269,12 @@ final class Utils { static XmlJavaTypeAdapter getMethodXJTA(final Method m) { XmlJavaTypeAdapter adapter = m.getAnnotation(XmlJavaTypeAdapter.class); if (adapter == null) { + Method setter = getSetter(m); + if (setter != null) { + adapter = setter.getAnnotation(XmlJavaTypeAdapter.class); + } + } + if (adapter == null) { adapter = m.getReturnType().getAnnotation(XmlJavaTypeAdapter.class); } if (adapter == null) { @@ -281,7 +290,7 @@ final class Utils { } return adapter; } - + static Type getTypeFromXmlAdapter(XmlJavaTypeAdapter xjta) { if (xjta != null) { Class c2 = xjta.value();