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/04/17 13:03:14 UTC

svn commit: r529559 - in /webservices/sandesha/trunk/java/src/org/apache/sandesha2: msgprocessors/MakeConnectionProcessor.java polling/PollingManager.java

Author: mckierna
Date: Tue Apr 17 04:03:13 2007
New Revision: 529559

URL: http://svn.apache.org/viewvc?view=rev&rev=529559
Log:
See http://issues.apache.org/jira/browse/SANDESHA2-84

Modified:
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/polling/PollingManager.java

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java?view=diff&rev=529559&r1=529558&r2=529559
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java Tue Apr 17 04:03:13 2007
@@ -135,7 +135,8 @@
 		if (returnMessage==null) {
 			String message = "Cannot find the message stored with the key:" + messageStorageKey;
 			if(log.isDebugEnabled()) log.debug(message);
-			throw new SandeshaException (message);
+			// Someone else has either removed the sender & message, or another make connection got here first.
+			return;
 		}
 		
 		if(pending) addMessagePendingHeader(returnMessage, namespace);

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/polling/PollingManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/polling/PollingManager.java?view=diff&rev=529559&r1=529558&r2=529559
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/polling/PollingManager.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/polling/PollingManager.java Tue Apr 17 04:03:13 2007
@@ -210,46 +210,48 @@
 		}
 		
 		MessageContext referenceMessage = storageManager.retrieveMessageContext(referenceMsgKey,context);
-		RMMsgContext referenceRMMessage = MsgInitializer.initializeMessage(referenceMessage);
-		RMMsgContext makeConnectionRMMessage = RMMsgCreator.createMakeConnectionMessage(referenceRMMessage,
-				rmBean, wireSeqId, wireAddress, storageManager);
-		
-		
-		//we must set serverSide to false. Having serverSide as true (I.e. when polling for RMD) will cause the SenderWorker to ignore
-		//the sync response message.
-		makeConnectionRMMessage.getMessageContext().setServerSide(false);
-		
-		// Store properties so that we know which sequence we are polling for. This can be used
-		// to match reply sequences up to requests, as well as to help process messagePending
-		// headers.
-		OperationContext ctx = makeConnectionRMMessage.getMessageContext().getOperationContext();
-		ctx.setProperty(Sandesha2Constants.MessageContextProperties.MAKECONNECTION_ENTRY, entry);
-		
-		makeConnectionRMMessage.setProperty(MessageContext.TRANSPORT_IN,null);
-		//storing the MakeConnection message.
-		String makeConnectionMsgStoreKey = SandeshaUtil.getUUID();
-		
-		//add an entry for the MakeConnection message to the sender (with ,send=true, resend=false)
-		SenderBean makeConnectionSenderBean = new SenderBean ();
-		makeConnectionSenderBean.setInternalSequenceID(internalSeqId);
-		makeConnectionSenderBean.setMessageContextRefKey(makeConnectionMsgStoreKey);
-		makeConnectionSenderBean.setMessageID(makeConnectionRMMessage.getMessageId());
-		makeConnectionSenderBean.setMessageType(Sandesha2Constants.MessageTypes.MAKE_CONNECTION_MSG);
-		makeConnectionSenderBean.setReSend(false);
-		makeConnectionSenderBean.setSend(true);
-		makeConnectionSenderBean.setSequenceID(rmBean.getSequenceID());
-		EndpointReference to = makeConnectionRMMessage.getTo();
-		if (to!=null)
-			makeConnectionSenderBean.setToAddress(to.getAddress());
+		if(referenceMessage!=null){
+			RMMsgContext referenceRMMessage = MsgInitializer.initializeMessage(referenceMessage);
+			RMMsgContext makeConnectionRMMessage = RMMsgCreator.createMakeConnectionMessage(referenceRMMessage,
+					rmBean, wireSeqId, wireAddress, storageManager);
+			
+			
+			//we must set serverSide to false. Having serverSide as true (I.e. when polling for RMD) will cause the SenderWorker to ignore
+			//the sync response message.
+			makeConnectionRMMessage.getMessageContext().setServerSide(false);
+			
+			// Store properties so that we know which sequence we are polling for. This can be used
+			// to match reply sequences up to requests, as well as to help process messagePending
+			// headers.
+			OperationContext ctx = makeConnectionRMMessage.getMessageContext().getOperationContext();
+			ctx.setProperty(Sandesha2Constants.MessageContextProperties.MAKECONNECTION_ENTRY, entry);
+			
+			makeConnectionRMMessage.setProperty(MessageContext.TRANSPORT_IN,null);
+			//storing the MakeConnection message.
+			String makeConnectionMsgStoreKey = SandeshaUtil.getUUID();
+			
+			//add an entry for the MakeConnection message to the sender (with ,send=true, resend=false)
+			SenderBean makeConnectionSenderBean = new SenderBean ();
+			makeConnectionSenderBean.setInternalSequenceID(internalSeqId);
+			makeConnectionSenderBean.setMessageContextRefKey(makeConnectionMsgStoreKey);
+			makeConnectionSenderBean.setMessageID(makeConnectionRMMessage.getMessageId());
+			makeConnectionSenderBean.setMessageType(Sandesha2Constants.MessageTypes.MAKE_CONNECTION_MSG);
+			makeConnectionSenderBean.setReSend(false);
+			makeConnectionSenderBean.setSend(true);
+			makeConnectionSenderBean.setSequenceID(rmBean.getSequenceID());
+			EndpointReference to = makeConnectionRMMessage.getTo();
+			if (to!=null)
+				makeConnectionSenderBean.setToAddress(to.getAddress());
 
-		SenderBeanMgr senderBeanMgr = storageManager.getSenderBeanMgr();
-		
-		//this message should not be sent until it is qualified. I.e. till it is sent through the Sandesha2TransportSender.
-		makeConnectionRMMessage.setProperty(Sandesha2Constants.QUALIFIED_FOR_SENDING, Sandesha2Constants.VALUE_FALSE);
-		
-		SandeshaUtil.executeAndStore(makeConnectionRMMessage, makeConnectionMsgStoreKey);
-		
-		senderBeanMgr.insert(makeConnectionSenderBean);
+			SenderBeanMgr senderBeanMgr = storageManager.getSenderBeanMgr();
+			
+			//this message should not be sent until it is qualified. I.e. till it is sent through the Sandesha2TransportSender.
+			makeConnectionRMMessage.setProperty(Sandesha2Constants.QUALIFIED_FOR_SENDING, Sandesha2Constants.VALUE_FALSE);
+			
+			SandeshaUtil.executeAndStore(makeConnectionRMMessage, makeConnectionMsgStoreKey);
+			
+			senderBeanMgr.insert(makeConnectionSenderBean);			
+		}
 		
 		if(log.isDebugEnabled()) log.debug("Exit: PollingManager::pollForSequence");
 	}



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org