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]

Reply via email to