ws-sandesha-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mckie...@apache.org
Subject svn commit: r576803 - in /webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2: handlers/SandeshaInHandler.java msgprocessors/SequenceProcessor.java util/FaultManager.java
Date Tue, 18 Sep 2007 09:41:55 GMT
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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Mime
View raw message