You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ga...@apache.org on 2008/04/09 16:31:51 UTC
svn commit: r646380 - in /webservices/axis2/trunk/java/modules/addressing:
src/org/apache/axis2/addressing/AddressingFaultsHelper.java
test/org/apache/axis2/addressing/AddressingFaultsTest.java
Author: gawor
Date: Wed Apr 9 07:31:50 2008
New Revision: 646380
URL: http://svn.apache.org/viewvc?rev=646380&view=rev
Log:
prefer sending [Subsubcode] as the fault code instead of [Subcode] for SOAP 1.1 faults (AXIS2-3718)
Modified:
webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/addressing/AddressingFaultsHelper.java
webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/addressing/AddressingFaultsTest.java
Modified: webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/addressing/AddressingFaultsHelper.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/addressing/AddressingFaultsHelper.java?rev=646380&r1=646379&r2=646380&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/addressing/AddressingFaultsHelper.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/addressing/AddressingFaultsHelper.java Wed Apr 9 07:31:50 2008
@@ -355,7 +355,9 @@
faultInformation.put(faultInformationKey, faultInformationValue);
- if (!messageContext.isSOAP11()) {
+ if (messageContext.isSOAP11()) {
+ faultcode = (faultSubcode != null) ? faultSubcode : faultcode;
+ } else {
setFaultCode(messageContext, faultcode, faultSubcode);
}
Modified: webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/addressing/AddressingFaultsTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/addressing/AddressingFaultsTest.java?rev=646380&r1=646379&r2=646380&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/addressing/AddressingFaultsTest.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/addressing/AddressingFaultsTest.java Wed Apr 9 07:31:50 2008
@@ -19,6 +19,7 @@
package org.apache.axis2.addressing;
+import junit.framework.AssertionFailedError;
import junit.framework.TestCase;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
@@ -31,6 +32,22 @@
public class AddressingFaultsTest extends TestCase {
+ private void testFaultCode(QName genericFaultCode,
+ QName specificFaultCode,
+ QName actualFaultCode) {
+ // in SOAP 1.1 fault code can be a [Subcode] or [Subsubcode]
+ // so need to check for both
+ if (specificFaultCode != null) {
+ try {
+ assertEquals("Specific fault code", specificFaultCode, actualFaultCode);
+ return;
+ } catch (AssertionFailedError e) {
+ // fall thru
+ }
+ }
+ assertEquals("Generic fault code", genericFaultCode, actualFaultCode);
+ }
+
/**
* Test method for {@link AddressingFaultsHelper#triggerInvalidCardinalityFault(org.apache.axis2.context.MessageContext,
* String)}.
@@ -46,8 +63,9 @@
} catch (AxisFault af) {
// Expected
assertEquals(Final.FAULT_INVALID_HEADER_REASON, af.getMessage());
- assertEquals(new QName(Final.WSA_NAMESPACE, Final.FAULT_INVALID_HEADER),
- af.getFaultCode());
+ testFaultCode(new QName(Final.WSA_NAMESPACE, Final.FAULT_INVALID_HEADER),
+ new QName(Final.WSA_NAMESPACE, "InvalidCardinality"),
+ af.getFaultCode());
assertEquals("wsa:Action", ((Map)messageContext
.getProperty(Constants.FAULT_INFORMATION_FOR_HEADERS)).get(
Final.FAULT_HEADER_PROB_HEADER_QNAME));
@@ -84,8 +102,9 @@
} catch (AxisFault af) {
// Expected
assertEquals(Final.FAULT_INVALID_HEADER_REASON, af.getMessage());
- assertEquals(new QName(Final.WSA_NAMESPACE, Final.FAULT_INVALID_HEADER),
- af.getFaultCode());
+ testFaultCode(new QName(Final.WSA_NAMESPACE, Final.FAULT_INVALID_HEADER),
+ new QName(Final.WSA_NAMESPACE, "ActionMismatch"),
+ af.getFaultCode());
assertEquals("wsa:Action", ((Map)messageContext
.getProperty(Constants.FAULT_INFORMATION_FOR_HEADERS)).get(
Final.FAULT_HEADER_PROB_HEADER_QNAME));
@@ -126,8 +145,9 @@
} catch (AxisFault af) {
// Expected
assertEquals(Final.FAULT_INVALID_HEADER_REASON, af.getMessage());
- assertEquals(new QName(Final.WSA_NAMESPACE, Final.FAULT_INVALID_HEADER),
- af.getFaultCode());
+ testFaultCode(new QName(Final.WSA_NAMESPACE, Final.FAULT_INVALID_HEADER),
+ new QName(Final.WSA_NAMESPACE, Final.FAULT_ONLY_ANONYMOUS_ADDRESS_SUPPORTED),
+ af.getFaultCode());
assertEquals("wsa:ReplyTo", ((Map)messageContext
.getProperty(Constants.FAULT_INFORMATION_FOR_HEADERS)).get(
Final.FAULT_HEADER_PROB_HEADER_QNAME));
@@ -169,8 +189,9 @@
} catch (AxisFault af) {
// Expected
assertEquals(Final.FAULT_INVALID_HEADER_REASON, af.getMessage());
- assertEquals(new QName(Final.WSA_NAMESPACE, Final.FAULT_INVALID_HEADER),
- af.getFaultCode());
+ testFaultCode(new QName(Final.WSA_NAMESPACE, Final.FAULT_INVALID_HEADER),
+ new QName(Final.WSA_NAMESPACE, Final.FAULT_ONLY_NON_ANONYMOUS_ADDRESS_SUPPORTED),
+ af.getFaultCode());
assertEquals("wsa:ReplyTo", ((Map)messageContext
.getProperty(Constants.FAULT_INFORMATION_FOR_HEADERS)).get(
Final.FAULT_HEADER_PROB_HEADER_QNAME));
@@ -211,8 +232,9 @@
} catch (AxisFault af) {
// Expected
assertEquals(Final.FAULT_ADDRESSING_HEADER_REQUIRED_REASON, af.getMessage());
- assertEquals(new QName(Final.WSA_NAMESPACE, Final.FAULT_ADDRESSING_HEADER_REQUIRED),
- af.getFaultCode());
+ testFaultCode(new QName(Final.WSA_NAMESPACE, Final.FAULT_ADDRESSING_HEADER_REQUIRED),
+ null,
+ af.getFaultCode());
assertEquals("wsa:Action", ((Map)messageContext
.getProperty(Constants.FAULT_INFORMATION_FOR_HEADERS)).get(
Final.FAULT_HEADER_PROB_HEADER_QNAME));
@@ -253,8 +275,9 @@
} catch (AxisFault af) {
// Expected
assertEquals(AddressingConstants.FAULT_ACTION_NOT_SUPPORTED_REASON, af.getMessage());
- assertEquals(
+ testFaultCode(
new QName(Final.WSA_NAMESPACE, AddressingConstants.FAULT_ACTION_NOT_SUPPORTED),
+ null,
af.getFaultCode());
assertEquals("http://incorrect/action", ((Map)messageContext
.getProperty(Constants.FAULT_INFORMATION_FOR_HEADERS)).get(
@@ -296,8 +319,9 @@
} catch (AxisFault af) {
// Expected
assertEquals(Final.FAULT_ADDRESSING_DESTINATION_UNREACHABLE_REASON, af.getMessage());
- assertEquals(
+ testFaultCode(
new QName(Final.WSA_NAMESPACE, AddressingConstants.FAULT_ADDRESSING_DESTINATION_UNREACHABLE),
+ null,
af.getFaultCode());
assertEquals("http://somewhere.com/somehow", ((Map)messageContext
.getProperty(Constants.FAULT_INFORMATION_FOR_HEADERS)).get(
@@ -338,8 +362,9 @@
} catch (AxisFault af) {
// Expected
assertEquals(Final.FAULT_INVALID_HEADER_REASON, af.getMessage());
- assertEquals(
+ testFaultCode(
new QName(Final.WSA_NAMESPACE, Final.FAULT_INVALID_HEADER),
+ new QName(Final.WSA_NAMESPACE, "InvalidEPR"),
af.getFaultCode());
assertEquals("wsa:ReplyTo", ((Map)messageContext
.getProperty(Constants.FAULT_INFORMATION_FOR_HEADERS)).get(
@@ -380,8 +405,9 @@
} catch (AxisFault af) {
// Expected
assertEquals(Final.FAULT_INVALID_HEADER_REASON, af.getMessage());
- assertEquals(
+ testFaultCode(
new QName(Final.WSA_NAMESPACE, Final.FAULT_INVALID_HEADER),
+ new QName(Final.WSA_NAMESPACE, "MissingAddressInEPR"),
af.getFaultCode());
assertEquals("wsa:ReplyTo", ((Map)messageContext
.getProperty(Constants.FAULT_INFORMATION_FOR_HEADERS)).get(
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org