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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Jun 18 23:21:25 EDT 2011


Author: gaohoward
Date: 2011-06-18 23:21:25 -0400 (Sat, 18 Jun 2011)
New Revision: 8352

Modified:
   branches/Branch_1_4/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java
Log:
JBMESSAGING-1881



Modified: branches/Branch_1_4/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java	2011-06-19 02:54:10 UTC (rev 8351)
+++ branches/Branch_1_4/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java	2011-06-19 03:21:25 UTC (rev 8352)
@@ -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