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]