Author: gatfora
Date: Tue Oct 21 02:26:50 2008
New Revision: 706560

URL: http://svn.apache.org/viewvc?rev=706560&view=rev
Log:
For a 2-way sequence, the LastMessage never gets sent for a response sequence 
if the sequence was setup to use async communications.  This patch changes to 
send the response sequence to the defined reply to address which had been set 
on the sequence.  There is a bit of cleanup surrounding Ack processing for 
terminated sequences and removed several unused imports.

Modified:
    
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
    
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
    
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
    
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMSBeanMgr.java
    
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java
    
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/MsgInitializer.java

Modified: 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java?rev=706560&r1=706559&r2=706560&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
 Tue Oct 21 02:26:50 2008
@@ -87,7 +87,6 @@
                        log.debug("Enter: 
AcknowledgementProcessor::processAckHeader " + soapHeader);
                
                boolean piggybackedAck = 
!(rmMsgCtx.getMessageType()==Sandesha2Constants.MessageTypes.ACK);
-               
                MessageContext msgCtx = rmMsgCtx.getMessageContext();
                ConfigurationContext configCtx = 
msgCtx.getConfigurationContext();
 
@@ -110,7 +109,10 @@
                        log.debug(message);
                        throw new SandeshaException(message);
                }
-               if (FaultManager.checkForSequenceTerminated(rmMsgCtx, 
outSequenceId, rmsBean, piggybackedAck)) {
+               // If the message type is terminate sequence, then there may be 
a piggy backed ACK for a 
+               // sequence that has been terminated
+               if 
(rmMsgCtx.getMessageType()!=Sandesha2Constants.MessageTypes.TERMINATE_SEQ && 
+                   FaultManager.checkForSequenceTerminated(rmMsgCtx, 
outSequenceId, rmsBean, piggybackedAck)) {
                        if (log.isDebugEnabled())
                                log.debug("Exit: 
AcknowledgementProcessor::processAckHeader, Sequence terminated");
                        return;

Modified: 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?rev=706560&r1=706559&r2=706560&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
 Tue Oct 21 02:26:50 2008
@@ -400,8 +400,15 @@
                                        lastMessage = true;
                        }
                        
-                       if (lastMessage) 
-                               rmsBean.setLastOutMessage(messageNumber);       
        
+                       if (lastMessage) {
+                               rmsBean.setLastOutMessage(messageNumber);
+                               
+                               if (msgContext.getTo() == null || 
(msgContext.getTo() != null && msgContext.getTo().isWSAddressingAnonymous())) {
+                                 if (log.isDebugEnabled())
+                                   log.debug("Rewriting anonymous EPR for 
LastMessage to the one stored in the RMSBean");
+                                 
msgContext.setTo(rmsBean.getToEndpointReference());
+                               }
+                       }
        
                        // set this as the response highest message.
                        rmsBean.setHighestOutMessageNumber(messageNumber);

Modified: 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java?rev=706560&r1=706559&r2=706560&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
 Tue Oct 21 02:26:50 2008
@@ -19,8 +19,6 @@
 
 package org.apache.sandesha2.msgprocessors;
 
-import java.util.Collection;
-
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;

Modified: 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMSBeanMgr.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMSBeanMgr.java?rev=706560&r1=706559&r2=706560&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMSBeanMgr.java
 (original)
+++ 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryRMSBeanMgr.java
 Tue Oct 21 02:26:50 2008
@@ -26,9 +26,6 @@
 
 import org.apache.axis2.context.AbstractContext;
 import org.apache.sandesha2.Sandesha2Constants;
-import org.apache.sandesha2.SandeshaException;
-import org.apache.sandesha2.i18n.SandeshaMessageHelper;
-import org.apache.sandesha2.i18n.SandeshaMessageKeys;
 import org.apache.sandesha2.storage.SandeshaStorageException;
 import org.apache.sandesha2.storage.beanmanagers.RMSBeanMgr;
 import org.apache.sandesha2.storage.beans.RMSBean;

Modified: 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java?rev=706560&r1=706559&r2=706560&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java
 (original)
+++ 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java
 Tue Oct 21 02:26:50 2008
@@ -114,8 +114,10 @@
                                if (LoggingControl.isAnyTracingEnabled() && 
log.isDebugEnabled())
                                        log.debug("Piggybacking ack for 
sequence: " + inboundSequence);
                                RMDBean sequence = 
storageManager.getRMDBeanMgr().retrieve(inboundSequence);
-                               RMMsgCreator.addAckMessage(rmMessageContext, 
inboundSequence, sequence, false);
-                               ((Sender) 
storageManager.getSender()).removeScheduledAcknowledgement(inboundSequence);
+                               if (sequence != null && 
!sequence.isTerminated()) {                               
+                               RMMsgCreator.addAckMessage(rmMessageContext, 
inboundSequence, sequence, false);
+                               ((Sender) 
storageManager.getSender()).removeScheduledAcknowledgement(inboundSequence);
+                               }
                        } else {
                                RMDBean findRMDBean = new RMDBean();
                                findRMDBean.setAcksToEndpointReference(target);

Modified: 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/MsgInitializer.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/MsgInitializer.java?rev=706560&r1=706559&r2=706560&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/MsgInitializer.java
 (original)
+++ 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/MsgInitializer.java
 Tue Oct 21 02:26:50 2008
@@ -23,7 +23,6 @@
 
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.addressing.AddressingConstants;
 import org.apache.axis2.context.MessageContext;
 import org.apache.sandesha2.RMMsgContext;
 import org.apache.sandesha2.Sandesha2Constants;



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

Reply via email to