Author: davidillsley
Date: Tue Apr  1 05:00:30 2008
New Revision: 643370

URL: http://svn.apache.org/viewvc?rev=643370&view=rev
Log:
SANDESHA2-132

Ensure that the backchannel is not signalled and an ack not piggybacked iff a 
LastMessage
is received and there is an associated sequence to respond with a LastMessage 
for.

Modified:
    
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
    
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/SequenceProcessor.java

Modified: 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java?rev=643370&r1=643369&r2=643370&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
 (original)
+++ 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
 Tue Apr  1 05:00:30 2008
@@ -28,6 +28,7 @@
 import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.RelatesTo;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.AxisOperation;
@@ -201,6 +202,10 @@
         boolean msgNoPresentInList = 
           serverCompletedMessageRanges.isMessageNumberInRanges(msgNo);
           
+        
if((rmMsgCtx.getMessageType()==Sandesha2Constants.MessageTypes.LAST_MESSAGE) && 
bean.getOutboundInternalSequence()!=null){
+               
rmMsgCtx.setProperty(Constants.Configuration.DISABLE_RESPONSE_ACK, 
Boolean.TRUE);
+        }
+        
         if (!msgNoPresentInList) {
           serverCompletedMessageRanges.addRange(new Range(msgNo));
           

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=643370&r1=643369&r2=643370&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 Apr  1 05:00:30 2008
@@ -318,11 +318,14 @@
                
                boolean sendAck = false;
                
+               // Need to special case 2005/02 LastMessage messages for replay 
model.
+               boolean lastMessageMessage = lastMessage && 
(rmMsgCtx.getMessageType()==Sandesha2Constants.MessageTypes.LAST_MESSAGE) && 
bean.getOutboundInternalSequence()!=null;
+               
                boolean ackBackChannel = 
SpecSpecificConstants.sendAckInBackChannel (rmMsgCtx.getMessageType());
                // If we are processing an inOnly message we must ack the back 
channel otherwise the connection stays open
                if (!ackBackChannel && mep == 
WSDLConstants.MEP_CONSTANT_IN_ONLY) ackBackChannel = true;
                EndpointReference acksTo = bean.getAcksToEndpointReference();
-               if (acksTo.hasAnonymousAddress() && backchannelFree && 
ackBackChannel) {
+               if (acksTo.hasAnonymousAddress() && backchannelFree && 
ackBackChannel && !lastMessageMessage) {
                        boolean responseWritten = 
TransportUtils.isResponseWritten(msgCtx);
                        if (!responseWritten) {                         
                                sendAck = true;



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to