Author: mckierna
Date: Tue Sep 18 02:41:55 2007
New Revision: 576803
URL: http://svn.apache.org/viewvc?rev=576803&view=rev
Log:
Transport issues and ensure seqID is correct when processing seqUnknownFaults
Modified:
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SandeshaInHandler.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/SequenceProcessor.java
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/handlers/SandeshaInHandler.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SandeshaInHandler.java?rev=576803&r1=576802&r2=576803&view=diff
==============================================================================
---
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SandeshaInHandler.java
(original)
+++
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SandeshaInHandler.java
Tue Sep 18 02:41:55 2007
@@ -23,6 +23,7 @@
import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.handlers.AbstractHandler;
+import org.apache.axis2.transport.RequestResponseTransport;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.sandesha2.MessageValidator;
@@ -126,6 +127,7 @@
AckRequestedProcessor reqProcessor = new
AckRequestedProcessor();
if(reqProcessor.processAckRequestedHeaders(rmMsgCtx)){
returnValue = InvocationResponse.SUSPEND;
+
msgCtx.setProperty(RequestResponseTransport.HOLD_RESPONSE, Boolean.TRUE);
}
// Process MessagePending headers
Modified:
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/SequenceProcessor.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/SequenceProcessor.java?rev=576803&r1=576802&r2=576803&view=diff
==============================================================================
---
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/SequenceProcessor.java
(original)
+++
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/SequenceProcessor.java
Tue Sep 18 02:41:55 2007
@@ -381,14 +381,11 @@
// transactional delivery. Either way, if they have one we
should use it.
SandeshaThread invoker = storageManager.getInvoker();
if (invoker != null) {
- // Whatever the MEP, we stop processing here and the
invoker will do the real work. We only
- // SUSPEND if we need to keep the backchannel open for
the response... we may as well ABORT
- // to let other cases end more quickly.
- if(backchannelFree && ackBackChannel) {
- result = InvocationResponse.ABORT;
- } else {
- result = InvocationResponse.SUSPEND;
- }
+ //Whatever the MEP, we stop processing here and the invoker
will do the real work. As we
+ // are taking responsibility for the message we need to
return SUSPEND
+ result = InvocationResponse.SUSPEND;
+
+ msgCtx.setProperty(RequestResponseTransport.HOLD_RESPONSE,
Boolean.TRUE);
InvokerBeanMgr storageMapMgr =
storageManager.getInvokerBeanMgr();
storageManager.storeMessageContext(key,
rmMsgCtx.getMessageContext());
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?rev=576803&r1=576802&r2=576803&view=diff
==============================================================================
---
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
Tue Sep 18 02:41:55 2007
@@ -575,8 +575,12 @@
String soapFaultSubcode = null;
String identifier = null;
+ boolean isSOAP11SequenceUnknownFault = false;
+
if
(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(SOAPNamespaceValue)) {
// Need to get the sequence part from the Header.
+ if (log.isDebugEnabled())
+ log.debug("soap11");
try {
SequenceFault sequenceFault =
(SequenceFault)rmMsgCtx.getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE_FAULT);
@@ -585,6 +589,9 @@
soapFaultSubcode =
sequenceFault.getFaultCode().getFaultCode().getLocalPart();
// Get the identifier - if there is one.
identifier =
sequenceFault.getFaultCode().getDetail();
+ isSOAP11SequenceUnknownFault = true;
+ if (log.isDebugEnabled())
+
log.debug("isSOAP11SequenceUnknownFault " + identifier);
}
} catch (SandeshaException e) {
@@ -602,7 +609,7 @@
// Get the identifier, if there is one.
SOAPFaultDetail detail = faultPart.getDetail();
- if (detail != null)
+ if (detail != null && !isSOAP11SequenceUnknownFault)
{
OMElement identifierOM =
detail.getFirstChildWithName(new QName(rmMsgCtx.getRMNamespaceValue(),
Sandesha2Constants.WSRM_COMMON.IDENTIFIER));
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]