You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by mc...@apache.org on 2007/05/17 15:07:13 UTC
svn commit: r538901 -
/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org