You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by ga...@apache.org on 2007/07/19 17:34:47 UTC
svn commit: r557660 -
/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java
Author: gatfora
Date: Thu Jul 19 08:34:47 2007
New Revision: 557660
URL: http://svn.apache.org/viewvc?view=rev&rev=557660
Log:
Sandesha doesn't process the UnknownSequenceFault when it's in the SOAP message body
Modified:
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java?view=diff&rev=557660&r1=557659&r2=557660
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java Thu Jul 19 08:34:47 2007
@@ -558,7 +558,6 @@
}
private static InvocationResponse manageIncomingFault (AxisFault fault, RMMsgContext rmMsgCtx, SOAPFault faultPart) throws AxisFault {
-
if (log.isDebugEnabled())
log.debug("Enter: FaultManager::manageIncomingFault");
InvocationResponse response = InvocationResponse.CONTINUE;
@@ -575,42 +574,41 @@
String soapFaultSubcode = null;
String identifier = null;
- if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(SOAPNamespaceValue)) {
- // Log the fault
- if (faultPart.getCode() != null &&
- faultPart.getCode().getSubCode() != null &&
- faultPart.getCode().getSubCode().getValue() != null)
-
- soapFaultSubcode = faultPart.getCode().getSubCode().getValue().getTextAsQName().getLocalPart();
-
- // Get the identifier, if there is one.
- SOAPFaultDetail detail = faultPart.getDetail();
- if (detail != null)
- {
- OMElement identifierOM = detail.getFirstChildWithName(new QName(rmMsgCtx.getRMNamespaceValue(),
- Sandesha2Constants.WSRM_COMMON.IDENTIFIER));
- if (identifierOM != null)
- identifier = identifierOM.getText();
- }
-
- } else {
+ if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(SOAPNamespaceValue)) {
// Need to get the sequence part from the Header.
try {
- SequenceFault sequenceFault = (SequenceFault)rmMsgCtx.getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE_FAULT);
+ SequenceFault sequenceFault = (SequenceFault)rmMsgCtx.getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE_FAULT);
- // If the sequence fault part is not null, then we have an RM specific fault.
- if (sequenceFault != null) {
- soapFaultSubcode = sequenceFault.getFaultCode().getFaultCode().getLocalPart();
-
- // Get the identifier - if there is one.
- identifier = sequenceFault.getFaultCode().getDetail();
- }
- } catch (SandeshaException e) {
- if (log.isDebugEnabled())
- log.debug("Unable to process SequenceFault", e);
- }
+ // If the sequence fault part is not null, then we have an RM specific fault.
+ if (sequenceFault != null) {
+ soapFaultSubcode = sequenceFault.getFaultCode().getFaultCode().getLocalPart();
+ // Get the identifier - if there is one.
+ identifier = sequenceFault.getFaultCode().getDetail();
+ }
+
+ } catch (SandeshaException e) {
+ if (log.isDebugEnabled())
+ log.debug("Unable to process SequenceFault", e);
+ }
}
-
+
+ // If we haven't found a soapFaultSubcode at this point - look inside the AxisFault for the information.
+ if (soapFaultSubcode == null && faultPart.getCode() != null &&
+ faultPart.getCode().getSubCode() != null &&
+ faultPart.getCode().getSubCode().getValue() != null)
+
+ soapFaultSubcode = faultPart.getCode().getSubCode().getValue().getTextAsQName().getLocalPart();
+
+ // Get the identifier, if there is one.
+ SOAPFaultDetail detail = faultPart.getDetail();
+ if (detail != null)
+ {
+ OMElement identifierOM = detail.getFirstChildWithName(new QName(rmMsgCtx.getRMNamespaceValue(),
+ Sandesha2Constants.WSRM_COMMON.IDENTIFIER));
+ if (identifierOM != null)
+ identifier = identifierOM.getText();
+ }
+
if (Sandesha2Constants.SOAPFaults.Subcodes.CREATE_SEQUENCE_REFUSED.equals(soapFaultSubcode)) {
processCreateSequenceRefusedFault(rmMsgCtx, fault);
} else if (Sandesha2Constants.SOAPFaults.Subcodes.UNKNOWN_SEQUENCE.equals(soapFaultSubcode) ||
@@ -710,8 +708,8 @@
return true;
}
- return false;
- }
+ return false;
+ }
/**
* On receipt of a CreateSequenceRefused fault, terminate the sequence and notify any waiting
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org