Author: mlovett
Date: Fri Dec 1 05:54:33 2006
New Revision: 481246
URL: http://svn.apache.org/viewvc?view=rev&rev=481246
Log:
deadlock5.patch for SANDESHA2-49
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.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=481246&r1=481245&r2=481246
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/MakeConnectionProcessor.java
Fri Dec 1 05:54:33 2006
@@ -124,7 +124,7 @@
//This will allow Sandesha2 to consider both of following
senarios equally.
// 1. A message being sent by the Sender thread.
// 2. A message being sent as a reply to an MakeConnection.
- SenderWorker worker = new SenderWorker
(configurationContext,senderBean.getMessageID());
+ SenderWorker worker = new SenderWorker
(configurationContext,senderBean);
worker.setTransportOut(rmMsgCtx.getMessageContext().getTransportOut());
worker.run();
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java?view=diff&rev=481246&r1=481245&r2=481246
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java
Fri Dec 1 05:54:33 2006
@@ -179,9 +179,7 @@
continue;
}
- String messageId = senderBean.getMessageID();
-
- String toAddress = senderBean.getToAddress();
+ String toAddress = senderBean.getToAddress();
if (toAddress != null) {
boolean unsendableAddress = false;
@@ -209,7 +207,7 @@
// work Id is used to define the piece of work
that will be
// assigned to the Worker thread,
// to handle this Sender bean.
- String workId = messageId;
+ String workId = senderBean.getMessageID();
// check weather the bean is already assigned
to a worker.
if (lock.isWorkPresent(workId)) {
@@ -226,9 +224,9 @@
transaction.commit();
// start a worker which will work on this
messages.
- SenderWorker worker = new SenderWorker(context,
messageId);
+ SenderWorker worker = new SenderWorker(context,
senderBean);
worker.setLock(lock);
- worker.setWorkId(messageId);
+ worker.setWorkId(workId);
threadPool.execute(worker);
// adding the workId to the lock after
assigning it to a thread
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java?view=diff&rev=481246&r1=481245&r2=481246
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
Fri Dec 1 05:54:33 2006
@@ -36,14 +36,15 @@
public class SenderWorker extends SandeshaWorker implements Runnable {
+ private static final Log log = LogFactory.getLog(SenderWorker.class);
+
private ConfigurationContext configurationContext = null;
- private String messageId = null;
- private static final Log log = LogFactory.getLog(SenderWorker.class);
+ private SenderBean senderBean = null;
private TransportOutDescription transportOut = null;
- public SenderWorker (ConfigurationContext configurationContext, String
messageId) {
+ public SenderWorker (ConfigurationContext configurationContext,
SenderBean senderBean) {
this.configurationContext = configurationContext;
- this.messageId = messageId;
+ this.senderBean = senderBean;
}
public void setTransportOut (TransportOutDescription transportOut) {
@@ -63,15 +64,14 @@
transaction = storageManager.getTransaction();
- SenderBean senderBean =
senderBeanMgr.retrieve(messageId);
- if (senderBean==null) {
- //the work is not present. May be invalid now.
So should return.
- if (log.isDebugEnabled())
-
log.debug(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.workNotPresent,workId));
- return;
- }
String key = senderBean.getMessageContextRefKey();
MessageContext msgCtx =
storageManager.retrieveMessageContext(key, configurationContext);
+
+ if (msgCtx == null) {
+ // This sender bean has already been processed
+ return;
+ }
+
msgCtx.setProperty(Sandesha2Constants.WITHIN_TRANSACTION,
Sandesha2Constants.VALUE_TRUE);
RMMsgContext rmMsgCtx =
MsgInitializer.initializeMessage(msgCtx);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]