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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]