Author: dkulp Date: Wed Oct 22 09:55:35 2008 New Revision: 707134 URL: http://svn.apache.org/viewvc?rev=707134&view=rev Log: Merged revisions 704587 via svnmerge from https://svn.apache.org/repos/asf/cxf/branches/2.1.x-fixes
................ r704587 | dkulp | 2008-10-14 13:23:25 -0400 (Tue, 14 Oct 2008) | 9 lines Merged revisions 704584 via svnmerge from https://svn.apache.org/repos/asf/cxf/trunk ........ r704584 | dkulp | 2008-10-14 13:19:29 -0400 (Tue, 14 Oct 2008) | 2 lines [CXF-1864] Fix parsing of namespaces/qnames in the soap 12 fault processing ........ ................ Added: cxf/branches/2.0.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/cxf1864.xml - copied unchanged from r704587, cxf/branches/2.1.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/cxf1864.xml Modified: cxf/branches/2.0.x-fixes/ (props changed) cxf/branches/2.0.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultInInterceptor.java cxf/branches/2.0.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java Propchange: cxf/branches/2.0.x-fixes/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Oct 22 09:55:35 2008 @@ -1,3 +1,3 @@ -/cxf/branches/2.1.x-fixes:673548,674485,674547,674551,674562,674601,674649,674764,674887,675644,675653,677048,677385,678004,678009,678559,678629,678808,678852,678891,678893,679248,679597,680435,681060,681165,681813,681816,682902,682951,683089,683290,683318,684099,684790-684793,684842,684862,684895-684918,685205,685253,686237,686283,686299,686333-686364,686765,686827,687097,687464-687465,689109,689112,689122,691316,691357,691491,691711,691715,691745,692162-692163,692468,692500,694466-694469,694472,694717,694748-694749,694870,695503,695509,695553,695555,695563,695875-695877,695940,695980,696436,696455,696721,697086,698129,701526,701634,702275,702443,702527,702582,702604,702610,702642-702643,702649,702760,702870,702873,702959,703193,703242,703523,704303,705153 -/cxf/trunk:651669-686342,686344-686363,686764,686820,687096,687387,687463,688086,688102,688735,691271,691355,691488,691602,691706,691728,692116,692157,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694869,695396,695484,695537,695552,695561,695619,695684,695835,695935,695977,696094,696433,696720,697085,698128,700261,700602,701783,701830,701862,702267,702580,702602,702609,702616,702656,702957,703191,703239,703501,705150 +/cxf/branches/2.1.x-fixes:673548,674485,674547,674551,674562,674601,674649,674764,674887,675644,675653,677048,677385,678004,678009,678559,678629,678808,678852,678891,678893,679248,679597,680435,681060,681165,681813,681816,682902,682951,683089,683290,683318,684099,684790-684793,684842,684862,684895-684918,685205,685253,686237,686283,686299,686333-686364,686765,686827,687097,687464-687465,689109,689112,689122,691316,691357,691491,691711,691715,691745,692162-692163,692468,692500,694466-694469,694472,694717,694748-694749,694870,695503,695509,695553,695555,695563,695875-695877,695940,695980,696436,696455,696721,697086,698129,701526,701634,702275,702443,702527,702582,702604,702610,702642-702643,702649,702760,702870,702873,702959,703193,703242,703523,704303,704587,705153 +/cxf/trunk:651669-686342,686344-686363,686764,686820,687096,687387,687463,688086,688102,688735,691271,691355,691488,691602,691706,691728,692116,692157,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694869,695396,695484,695537,695552,695561,695619,695684,695835,695935,695977,696094,696433,696720,697085,698128,700261,700602,701783,701830,701862,702267,702580,702602,702609,702616,702656,702957,703191,703239,703501,704584,705150 /incubator/cxf/trunk:434594-651668 Propchange: cxf/branches/2.0.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.0.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultInInterceptor.java URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultInInterceptor.java?rev=707134&r1=707133&r2=707134&view=diff ============================================================================== --- cxf/branches/2.0.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultInInterceptor.java (original) +++ cxf/branches/2.0.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultInInterceptor.java Wed Oct 22 09:55:35 2008 @@ -34,7 +34,6 @@ import org.apache.cxf.binding.soap.Soap12; import org.apache.cxf.binding.soap.SoapFault; import org.apache.cxf.binding.soap.SoapMessage; -import org.apache.cxf.common.util.StringUtils; import org.apache.cxf.helpers.XMLUtils; import org.apache.cxf.helpers.XPathUtils; import org.apache.cxf.interceptor.ClientFaultConverter; @@ -65,17 +64,18 @@ try { Document fault = StaxUtils.read(new FragmentStreamReader(reader)); - String faultCodeString = (String) xu.getValue("//s:Fault/s:Code/s:Value/text()", - fault, - XPathConstants.STRING); - - faultCode = XMLUtils.getQName(faultCodeString, fault); + Element el = (Element)xu.getValue("//s:Fault/s:Code/s:Value", + fault, + XPathConstants.NODE); + if (el != null) { + faultCode = XMLUtils.getQName(el.getTextContent(), el); + } - String subCodeString = (String) xu.getValue("//s:Fault/s:Code/s:Subcode/s:Value/text()", - fault, - XPathConstants.STRING); - if (StringUtils.isEmpty(subCodeString)) { - subCode = XMLUtils.getQName(subCodeString, fault); + el = (Element)xu.getValue("//s:Fault/s:Code/s:Subcode/s:Value", + fault, + XPathConstants.NODE); + if (el != null) { + subCode = XMLUtils.getQName(el.getTextContent(), el); } exMessage = (String) xu.getValue("//s:Fault/s:Reason/s:Text/text()", Modified: cxf/branches/2.0.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java?rev=707134&r1=707133&r2=707134&view=diff ============================================================================== --- cxf/branches/2.0.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java (original) +++ cxf/branches/2.0.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java Wed Oct 22 09:55:35 2008 @@ -154,4 +154,27 @@ assertEquals(Soap12.getInstance().getReceiver(), sf.getFaultCode()); } + + + @Test + public void testCXF1864() throws Exception { + + SoapMessage m = new SoapMessage(new MessageImpl()); + m.setVersion(Soap12.getInstance()); + + + XMLStreamReader reader = StaxUtils.createXMLStreamReader(this.getClass() + .getResourceAsStream("cxf1864.xml")); + m.setContent(XMLStreamReader.class, reader); + + reader.nextTag(); + + Soap12FaultInInterceptor inInterceptor = new Soap12FaultInInterceptor(); + inInterceptor.handleMessage(m); + + SoapFault fault2 = (SoapFault)m.getContent(Exception.class); + assertNotNull(fault2); + assertEquals(Soap12.getInstance().getReceiver(), fault2.getFaultCode()); + } + }
