Return-Path: Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: (qmail 49746 invoked from network); 22 Jan 2009 20:03:29 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 22 Jan 2009 20:03:29 -0000 Received: (qmail 49498 invoked by uid 500); 22 Jan 2009 20:03:29 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 49391 invoked by uid 500); 22 Jan 2009 20:03:29 -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 49382 invoked by uid 99); 22 Jan 2009 20:03:29 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 22 Jan 2009 12:03:29 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.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; Thu, 22 Jan 2009 20:03:27 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 6B68A2388892; Thu, 22 Jan 2009 12:03:07 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r736765 - in /cxf/branches/2.1.x-fixes: ./ rt/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java Date: Thu, 22 Jan 2009 20:03:07 -0000 To: commits@cxf.apache.org From: dkulp@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090122200307.6B68A2388892@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: dkulp Date: Thu Jan 22 12:03:06 2009 New Revision: 736765 URL: http://svn.apache.org/viewvc?rev=736765&view=rev Log: Merged revisions 736738 via svnmerge from https://svn.apache.org/repos/asf/cxf/trunk ........ r736738 | dkulp | 2009-01-22 13:37:48 -0500 (Thu, 22 Jan 2009) | 2 lines Better fault constructor logic ........ Modified: cxf/branches/2.1.x-fixes/ (props changed) cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java Propchange: cxf/branches/2.1.x-fixes/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Jan 22 12:03:06 2009 @@ -1 +1 @@ -/cxf/trunk:686333-686363,686764,686820,687096,687194,687363,687387,687463,687543,687722,687798,687814,687817,687891,687910,687914,688086,688102,688133,688596,688735,688870,689572,689596,689855,689924,690067,690289,691246,691271,691295,691338,691355,691488,691602,691646,691706,691728,692116,692157,692310,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694795,694869,694981,694987,694993,695041,695096,695396,695484,695537,695552,695561,695619,695684,695835,695840,695868,695935,695977,696016,696094,696433,696720,697085,697868,698128,699289,700261,700507,700602,700981,701316,701783,701830,701862,702187,702205-702248,702267,702547,702561,702580,702602,702609,702616,702653,702656,702957,703191,703239,703309,703501,703513,703548,704584,704937,704997,705150,705235,705274,705340,705446,705548,705614,705692,705708,706482,706631,706675,706900,706909,707034,707089,707100,707902,708035,708044,708074,708410,708417,708550,708554,709353-709354,709425,710076,710150,71015 4,711193,711388,711410,711490,711635,711949,711975,712194,712198,712238,712272,712299,712312,712670,712893,713082,713095-713096,713099,713584,713597,713737,713804,713899,714167-714168,714245,714255,717937-717961,718281-718448,718565,718620,718640,718665,718970,719017,719210,719215-719218,719222-719273,719305,719327-719680,720053,720119-720218,720238,720293-720316,720497,721221,721241,721501,722117,722129,722412,722988,723024,723338,723378,723716-723791,724333-724372,724433-724438,724449,724481,724485,724668,724780,724782,724785,724793,724795,724940,725071,725316,725332,725335,725348,725364,725418,725425-725426,725455,725506,725554,725562,725651,725671,725688,725754,725773,725799,725839,726342,726524,726631,726634,726637,726639,726692,726724,726769,726992,727096,727445,727521,727568,727692,727754,727781,727792,728070,728087,728696,728897,729051,729430,729449,729460,729863,730082,730139,730889,730891,731598,731604,731615,731631,731635,732036,732050,732320,732363,732411,732450, 732710,732827,733512,733582,733901,734367,734462,734666,734762,734772,734812,734836,734965,735113,735252,735722-735723,735729,735734,735751,735782,735787,735987,736352,736358-736362,736408,736423,736448,736491,736621,736726,736736 +/cxf/trunk:686333-686363,686764,686820,687096,687194,687363,687387,687463,687543,687722,687798,687814,687817,687891,687910,687914,688086,688102,688133,688596,688735,688870,689572,689596,689855,689924,690067,690289,691246,691271,691295,691338,691355,691488,691602,691646,691706,691728,692116,692157,692310,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694795,694869,694981,694987,694993,695041,695096,695396,695484,695537,695552,695561,695619,695684,695835,695840,695868,695935,695977,696016,696094,696433,696720,697085,697868,698128,699289,700261,700507,700602,700981,701316,701783,701830,701862,702187,702205-702248,702267,702547,702561,702580,702602,702609,702616,702653,702656,702957,703191,703239,703309,703501,703513,703548,704584,704937,704997,705150,705235,705274,705340,705446,705548,705614,705692,705708,706482,706631,706675,706900,706909,707034,707089,707100,707902,708035,708044,708074,708410,708417,708550,708554,709353-709354,709425,710076,710150,71015 4,711193,711388,711410,711490,711635,711949,711975,712194,712198,712238,712272,712299,712312,712670,712893,713082,713095-713096,713099,713584,713597,713737,713804,713899,714167-714168,714245,714255,717937-717961,718281-718448,718565,718620,718640,718665,718970,719017,719210,719215-719218,719222-719273,719305,719327-719680,720053,720119-720218,720238,720293-720316,720497,721221,721241,721501,722117,722129,722412,722988,723024,723338,723378,723716-723791,724333-724372,724433-724438,724449,724481,724485,724668,724780,724782,724785,724793,724795,724940,725071,725316,725332,725335,725348,725364,725418,725425-725426,725455,725506,725554,725562,725651,725671,725688,725754,725773,725799,725839,726342,726524,726631,726634,726637,726639,726692,726724,726769,726992,727096,727445,727521,727568,727692,727754,727781,727792,728070,728087,728696,728897,729051,729430,729449,729460,729863,730082,730139,730889,730891,731598,731604,731615,731631,731635,732036,732050,732320,732363,732411,732450, 732710,732827,733512,733582,733901,734367,734462,734666,734762,734772,734812,734836,734965,735113,735252,735722-735723,735729,735734,735751,735782,735787,735987,736352,736358-736362,736408,736423,736448,736491,736621,736726,736736,736738 Propchange: cxf/branches/2.1.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java?rev=736765&r1=736764&r2=736765&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java (original) +++ cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java Thu Jan 22 12:03:06 2009 @@ -148,18 +148,7 @@ Constructor constructor = exClass.getConstructor(new Class[]{String.class}); e = constructor.newInstance(new Object[]{fault.getMessage()}); } else { - Class beanClass = e.getClass(); - Constructor constructor = null; - try { - constructor = exClass.getConstructor(new Class[]{String.class, beanClass}); - } catch (NoSuchMethodException ex) { - Class cls = getPrimitiveClass(beanClass); - if (cls != null) { - constructor = exClass.getConstructor(new Class[]{String.class, cls}); - } else { - throw ex; - } - } + Constructor constructor = getConstructor(exClass, e); e = constructor.newInstance(new Object[]{fault.getMessage(), e}); } msg.setContent(Exception.class, e); @@ -179,7 +168,29 @@ } msg.setContent(Exception.class, e); } - + } + + private Constructor getConstructor(Class faultClass, Object e) throws NoSuchMethodException { + Class beanClass = e.getClass(); + Constructor cons[] = faultClass.getConstructors(); + for (Constructor c : cons) { + if (c.getParameterTypes().length == 2 + && String.class.equals(c.getParameterTypes()[0]) + && c.getParameterTypes()[1].isInstance(e)) { + return c; + } + } + try { + return faultClass.getConstructor(new Class[]{String.class, beanClass}); + } catch (NoSuchMethodException ex) { + Class cls = getPrimitiveClass(beanClass); + if (cls != null) { + return faultClass.getConstructor(new Class[]{String.class, cls}); + } else { + throw ex; + } + } + } private boolean isDOMSupported(DataBinding db) {