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