Author: mckierna
Date: Thu May 17 06:07:12 2007
New Revision: 538901

URL: http://svn.apache.org/viewvc?view=rev&rev=538901
Log:
Ensure orphaned messages obtain RM namespace correctly

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

Modified: 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java?view=diff&rev=538901&r1=538900&r2=538901
==============================================================================
--- 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
 Thu May 17 06:07:12 2007
@@ -21,9 +21,11 @@
 import org.apache.sandesha2.i18n.SandeshaMessageKeys;
 import org.apache.sandesha2.storage.StorageManager;
 import org.apache.sandesha2.storage.beanmanagers.SenderBeanMgr;
+import org.apache.sandesha2.storage.beans.RMSBean;
 import org.apache.sandesha2.storage.beans.SenderBean;
 import org.apache.sandesha2.util.MsgInitializer;
 import org.apache.sandesha2.util.SandeshaUtil;
+import org.apache.sandesha2.util.SpecSpecificConstants;
 import org.apache.sandesha2.workers.SenderWorker;
 import org.apache.sandesha2.wsrm.Address;
 import org.apache.sandesha2.wsrm.Identifier;
@@ -142,6 +144,21 @@
                if(pending) addMessagePendingHeader(returnMessage, namespace);
                
                RMMsgContext returnRMMsg = 
MsgInitializer.initializeMessage(returnMessage);
+               if(returnRMMsg.getRMNamespaceValue()==null){
+                       //this is the case when a stored application response 
msg was not sucecsfully returned 
+                       //on the sending transport's backchannel. Since the msg 
was stored without a sequence header
+                       //we need to lookup the namespace using the RMS bean
+                       if(log.isDebugEnabled()) log.debug("Looking up 
rmNamespace from RMS bean");
+                       String sequenceID = matchingMessage.getSequenceID();
+                       if(sequenceID!=null){
+                               RMSBean rmsBean = new RMSBean();
+                               rmsBean.setSequenceID(sequenceID);
+                               rmsBean = 
storageManager.getRMSBeanMgr().findUnique(rmsBean);
+                               if(rmsBean!=null){
+                                       
returnRMMsg.setRMNamespaceValue(SpecSpecificConstants.getRMNamespaceValue(rmsBean.getRMVersion()));
+                               }
+                       }
+               }
                setTransportProperties (returnMessage, pollMessage);
                
                // Link the response to the request



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

Reply via email to