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