You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ml...@apache.org on 2006/12/01 14:54:35 UTC
svn commit: r481246 - in
/webservices/sandesha/trunk/java/src/org/apache/sandesha2:
msgprocessors/MakeConnectionProcessor.java workers/Sender.java
workers/SenderWorker.java
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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org