[jboss-cvs] JBoss Messaging SVN: r4753 - in branches/Branch_JBMESSAGING-1303: tests/src/org/jboss/messaging/tests/unit/core/server/impl and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jul 30 12:16:18 EDT 2008


Author: jmesnil
Date: 2008-07-30 12:16:18 -0400 (Wed, 30 Jul 2008)
New Revision: 4753

Modified:
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/MessageReferenceImpl.java
   branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/server/impl/MessageReferenceImplTest.java
Log:
* in cancel() and sendToDLQ, set the destination of the copied message to the DLQ address so that it is properly routed when the tx commits

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/MessageReferenceImpl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/MessageReferenceImpl.java	2008-07-30 16:04:15 UTC (rev 4752)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/MessageReferenceImpl.java	2008-07-30 16:16:18 UTC (rev 4753)
@@ -130,8 +130,6 @@
          persistenceManager.updateDeliveryCount(this);
       }
               
-      queue.referenceCancelled();
-      
       int maxDeliveries = queueSettingsRepository.getMatch(queue.getName().toString()).getMaxDeliveryAttempts();
       
       if (maxDeliveries > 0 && deliveryCount >= maxDeliveries)
@@ -150,6 +148,7 @@
          	}
          	
             ServerMessage copyMessage = makeCopyForDLQOrExpiry(false, persistenceManager);
+            copyMessage.setDestination(binding.getAddress());
             
             tx.addMessage(copyMessage);
             
@@ -169,7 +168,9 @@
          return false;
       }
       else
-      {
+      {         
+         queue.referenceCancelled();  
+
          return true;
       }
    }
@@ -179,20 +180,21 @@
          HierarchicalRepository<QueueSettings> queueSettingsRepository)
          throws Exception
    {
-      SimpleString DLQ = queueSettingsRepository.getMatch(queue.getName().toString()).getDLQ();
+      SimpleString dlq = queueSettingsRepository.getMatch(queue.getName().toString()).getDLQ();
       
       Transaction tx = new TransactionImpl(persistenceManager, postOffice);
                
-      if (DLQ != null)
+      if (dlq != null)
       {
-         Binding binding = postOffice.getBinding(DLQ);
+         Binding binding = postOffice.getBinding(dlq);
          
          if (binding == null)
          {
-            binding = postOffice.addBinding(DLQ, DLQ, null, true, false);
+            binding = postOffice.addBinding(dlq, dlq, null, true, false);
          }
          
          ServerMessage copyMessage = makeCopyForDLQOrExpiry(false, persistenceManager);
+         copyMessage.setDestination(binding.getAddress());
          
          tx.addMessage(copyMessage);
          
@@ -227,7 +229,7 @@
          
          tx.addMessage(copyMessage);
          
-         tx.addAcknowledgement(this);                 
+         tx.addAcknowledgement(this);  
       }
       else
       {

Modified: branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/server/impl/MessageReferenceImplTest.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/server/impl/MessageReferenceImplTest.java	2008-07-30 16:04:15 UTC (rev 4752)
+++ branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/server/impl/MessageReferenceImplTest.java	2008-07-30 16:16:18 UTC (rev 4753)
@@ -85,7 +85,7 @@
       MessageReferenceImpl messageReference = new DummyMessageReference(serverMessage, queue);
       SimpleString queueName = new SimpleString("queueName");
       queue.referenceCancelled();
-      EasyMock.expect(queue.getName()).andReturn(queueName);
+      EasyMock.expect(queue.getName()).andStubReturn(queueName);
       EasyMock.expect(repos.getMatch(queueName.toString())).andStubReturn(queueSettings);
       EasyMock.expect(serverMessage.isDurable()).andStubReturn(true);
       EasyMock.expect(serverMessage.getMessageID()).andStubReturn(999l);
@@ -107,7 +107,7 @@
       MessageReferenceImpl messageReference = new DummyMessageReference(serverMessage, queue);
       SimpleString queueName = new SimpleString("queueName");
       queue.referenceCancelled();
-      EasyMock.expect(queue.getName()).andReturn(queueName);
+      EasyMock.expect(queue.getName()).andStubReturn(queueName);
       EasyMock.expect(repos.getMatch(queueName.toString())).andStubReturn(queueSettings);
       EasyMock.expect(serverMessage.isDurable()).andStubReturn(false);
       EasyMock.expect(serverMessage.getMessageID()).andStubReturn(999l);
@@ -132,7 +132,6 @@
       MessageReferenceImpl messageReference = new DummyMessageReference(serverMessage, queue);
       messageReference.setDeliveryCount(1);
       SimpleString queueName = new SimpleString("queueName");
-      queue.referenceCancelled();
       queue.referenceAcknowledged(messageReference);
       EasyMock.expect(queue.getName()).andStubReturn(queueName);
       EasyMock.expect(repos.getMatch(queueName.toString())).andStubReturn(queueSettings);
@@ -169,7 +168,6 @@
       MessageReferenceImpl messageReference = new DummyMessageReference(serverMessage, queue);
       messageReference.setDeliveryCount(1);
       SimpleString queueName = new SimpleString("queueName");
-      queue.referenceCancelled();
       queue.referenceAcknowledged(messageReference);
       EasyMock.expect(queue.getName()).andStubReturn(queueName);
       EasyMock.expect(repos.getMatch(queueName.toString())).andStubReturn(queueSettings);




More information about the jboss-cvs-commits mailing list