[jboss-cvs] JBoss Messaging SVN: r8350 - branches/JBMESSAGING_1881/src/main/org/jboss/jms/server/endpoint.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Jun 18 11:42:52 EDT 2011


Author: gaohoward
Date: 2011-06-18 11:42:52 -0400 (Sat, 18 Jun 2011)
New Revision: 8350

Modified:
   branches/JBMESSAGING_1881/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java
Log:
first fix


Modified: branches/JBMESSAGING_1881/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java
===================================================================
--- branches/JBMESSAGING_1881/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java	2011-06-18 14:08:34 UTC (rev 8349)
+++ branches/JBMESSAGING_1881/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java	2011-06-18 15:42:52 UTC (rev 8350)
@@ -1099,15 +1099,29 @@
 
 	   		if (performDelivery)
 	   		{
-	   			toDeliver.take();
+	   		   DeliveryRecord record = (DeliveryRecord)toDeliver.poll(0);
+	   		   
+	   		   //JBMESSAGING-1881
+	   		   if (record != null)
+	   		   {
+	   		      if (record == dr)
+	   		      {
+	   		         if (trace) { log.trace("performing delivery for " + record); }
 
-	   			performDelivery(dr.del.getReference(), dr.deliveryID, dr.getConsumer());
+	   			      performDelivery(dr.del.getReference(), dr.deliveryID, dr.getConsumer());
 
-	   			delivered = true;
+    			         delivered = true;
 
-	   	   	dr.waitingForResponse = false;
+	   	   	      dr.waitingForResponse = false;
 
-	   	   	delivered = true;
+	   	   	      delivered = true;
+	   		      }
+	   		      else
+	   		      {
+	   		         if (trace) { log.trace("Putting back " + record); }
+	   		         toDeliver.put(record);
+	   		      }
+	   		   }
 	   		}
    		}
    	}



More information about the jboss-cvs-commits mailing list