[jboss-cvs] JBoss Messaging SVN: r3581 - in trunk: src/main/org/jboss/messaging/core and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 17 06:53:53 EST 2008


Author: timfox
Date: 2008-01-17 06:53:53 -0500 (Thu, 17 Jan 2008)
New Revision: 3581

Modified:
   trunk/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java
   trunk/src/main/org/jboss/messaging/core/PriorityLinkedList.java
   trunk/src/main/org/jboss/messaging/core/impl/PriorityLinkedListImpl.java
   trunk/src/main/org/jboss/messaging/core/impl/QueueImpl.java
   trunk/tests/src/org/jboss/messaging/core/impl/test/unit/QueueTest.java
   trunk/tests/src/org/jboss/test/messaging/jms/selector/SelectorTest.java
Log:
Fixed failing test


Modified: trunk/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java	2008-01-16 21:38:26 UTC (rev 3580)
+++ trunk/src/main/org/jboss/jms/server/endpoint/ServerConsumerEndpoint.java	2008-01-17 11:53:53 UTC (rev 3581)
@@ -188,6 +188,8 @@
       
       // adding the consumer to the queue
       messageQueue.addConsumer(this);
+      
+      messageQueue.deliver();
 
       log.trace(this + " constructed");
    }

Modified: trunk/src/main/org/jboss/messaging/core/PriorityLinkedList.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/PriorityLinkedList.java	2008-01-16 21:38:26 UTC (rev 3580)
+++ trunk/src/main/org/jboss/messaging/core/PriorityLinkedList.java	2008-01-17 11:53:53 UTC (rev 3581)
@@ -55,6 +55,4 @@
    ListIterator<T> iterator();
    
    boolean isEmpty();
-   
-   void dump();
 }

Modified: trunk/src/main/org/jboss/messaging/core/impl/PriorityLinkedListImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/impl/PriorityLinkedListImpl.java	2008-01-16 21:38:26 UTC (rev 3580)
+++ trunk/src/main/org/jboss/messaging/core/impl/PriorityLinkedListImpl.java	2008-01-17 11:53:53 UTC (rev 3581)
@@ -22,13 +22,11 @@
 package org.jboss.messaging.core.impl;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.ListIterator;
 import java.util.NoSuchElementException;
 
-import org.jboss.logging.Logger;
 import org.jboss.messaging.core.PriorityLinkedList;
 
 /**
@@ -42,9 +40,7 @@
  * $Id: BasicPrioritizedDeque.java 1174 2006-08-02 14:14:32Z timfox $
  */
 public class PriorityLinkedListImpl<T> implements PriorityLinkedList<T>
-{      
-   private static final Logger log = Logger.getLogger(PriorityLinkedListImpl.class);
-   	
+{      	
    private List<LinkedList<T>> linkedLists;
    
    private int priorities;
@@ -179,26 +175,6 @@
       return new PriorityLinkedListIterator();
    }
    
-   public void dump()
-   {
-      log.debug("Dumping " + this);
-      log.debug("Size:" + size);
-      log.debug("===============");
-      
-      for (int i = 0; i < linkedLists.size(); i++)
-      {
-         log.debug("Priority:" + i);
-         log.debug("----------------");
-         
-         Iterator<T> iter = linkedLists.get(i).iterator();
-         
-         while (iter.hasNext())
-         {
-            log.debug("Ref: "+ iter.next());
-         }
-      }
-   }
-      
    private void initLists()
    {      
       linkedLists = new ArrayList<LinkedList<T>>();

Modified: trunk/src/main/org/jboss/messaging/core/impl/QueueImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/impl/QueueImpl.java	2008-01-16 21:38:26 UTC (rev 3580)
+++ trunk/src/main/org/jboss/messaging/core/impl/QueueImpl.java	2008-01-17 11:53:53 UTC (rev 3581)
@@ -54,11 +54,7 @@
    private static final Logger log = Logger.getLogger(QueueImpl.class);
 
    private static final boolean trace = log.isTraceEnabled();
-   
-   private boolean hashAssigned;
-   
-   private int hash;
-       
+      
    protected volatile long id = -1;
    
    protected String name;
@@ -195,10 +191,12 @@
          
          if (reference == null)
          {
-            if (iterator == null)
+            if (messageReferences.isEmpty())
             {
                //We delivered all the messages - go into direct delivery
                direct = true;
+               
+               promptDelivery = false;
             }
             return;
          }
@@ -368,14 +366,9 @@
               
    public boolean equals(Object other)
    {
-      if (!(other instanceof QueueImpl))
-      {
-         return false;
-      }
-      
       QueueImpl qother = (QueueImpl)other;
       
-      return this.id == qother.id && this.name.equals(qother.name);
+      return name.equals(qother.name);
    }
    
    public int hashCode()
@@ -418,8 +411,6 @@
             else if (status == HandleStatus.NO_MATCH)
             {
                add = true;
-               
-               promptDelivery = true;
             }
             
             if (add)
@@ -444,7 +435,7 @@
             }
             
             if (!direct && promptDelivery)
-            {
+            {               
                //We have consumers with filters which don't match, so we need to prompt delivery every time
                //a new message arrives - this is why you really shouldn't use filters with queues - in most cases
                //it's an ant-pattern since it would cause a queue scan on each message
@@ -536,6 +527,8 @@
          }
          else if (status == HandleStatus.NO_MATCH)
          {
+            promptDelivery = true;
+            
             filterRejected = true;
          }       
          

Modified: trunk/tests/src/org/jboss/messaging/core/impl/test/unit/QueueTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/impl/test/unit/QueueTest.java	2008-01-16 21:38:26 UTC (rev 3580)
+++ trunk/tests/src/org/jboss/messaging/core/impl/test/unit/QueueTest.java	2008-01-17 11:53:53 UTC (rev 3581)
@@ -840,106 +840,6 @@
       assertEquals(2 * maxSize, queue.getMaxSize());      
    }
    
-   /* Queues don't have filters internally - this is evaulated by the post office
-   public void testQueueWithFilter()
-   {
-      Filter filter = new FakeFilter("fruit", "orange");
-      
-      Queue queue = new QueueImpl(1, "queue1", filter, false, true, false, -1);
-      
-      FakeConsumer consumer = new FakeConsumer();
-            
-      List<MessageReference> refs = new ArrayList<MessageReference>();
-      
-      MessageReference ref1 = generateReference(queue, 1);
-      
-      ref1.getMessage().putHeader("fruit", "banana");
-      
-      assertEquals(HandleStatus.NO_MATCH, queue.addLast(ref1));
-      
-      MessageReference ref2 = generateReference(queue, 2);
-      
-      ref2.getMessage().putHeader("cheese", "stilton");
-      
-      assertEquals(HandleStatus.NO_MATCH, queue.addLast(ref2));
-      
-      MessageReference ref3 = generateReference(queue, 3);
-      
-      ref3.getMessage().putHeader("cake", "sponge");
-      
-      assertEquals(HandleStatus.NO_MATCH, queue.addLast(ref3));
-      
-      MessageReference ref4 = generateReference(queue, 4);
-      
-      ref4.getMessage().putHeader("fruit", "orange");
-      
-      refs.add(ref4);
-      
-      assertEquals(HandleStatus.HANDLED, queue.addLast(ref4));
-      
-      MessageReference ref5 = generateReference(queue, 5);
-      
-      ref5.getMessage().putHeader("fruit", "apple");
-      
-      assertEquals(HandleStatus.NO_MATCH, queue.addLast(ref5));
-      
-      MessageReference ref6 = generateReference(queue, 6);
-      
-      ref6.getMessage().putHeader("fruit", "orange");
-      
-      refs.add(ref6);
-      
-      assertEquals(HandleStatus.HANDLED, queue.addLast(ref6));
-      
-      //Add a few first
-      
-      MessageReference ref7 = generateReference(queue, 7);
-      
-      ref7.getMessage().putHeader("fruit", "banana");
-      
-      assertEquals(HandleStatus.NO_MATCH, queue.addFirst(ref7));
-      
-      MessageReference ref8 = generateReference(queue, 8);
-      
-      ref8.getMessage().putHeader("fruit", "nectarine");
-      
-      assertEquals(HandleStatus.NO_MATCH, queue.addFirst(ref8));
-      
-      MessageReference ref9 = generateReference(queue, 9);
-      
-      ref9.getMessage().putHeader("fruit", "orange");
-      
-      assertEquals(HandleStatus.HANDLED, queue.addFirst(ref9));
-      
-      List<MessageReference> newRefs = new ArrayList<MessageReference>();
-      
-      newRefs.add(ref9);
-      newRefs.addAll(refs);
-      
-      queue.setFilter(null);
-      
-      MessageReference ref10 = generateReference(queue, 10);
-      
-      ref10.getMessage().putHeader("sport", "skiing");
-      
-      assertEquals(HandleStatus.HANDLED, queue.addLast(ref10));
-      
-      newRefs.add(ref10);
-                  
-      assertEquals(4, queue.getMessageCount());   
-      assertEquals(0, queue.getScheduledCount());
-      
-      queue.addConsumer(consumer);
-      
-      queue.deliver();      
-      
-      assertEquals(0, queue.getMessageCount());   
-      assertEquals(0, queue.getScheduledCount());
-      
-      assertRefListsIdenticalRefs(newRefs, consumer.getReferences()); 
-   }
-   */
-      
    public void testWithPriorities()
    {
       Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1);
@@ -1007,6 +907,15 @@
       testConsumerWithFilters(false);
    }
    
+   public void testConsumerWithFilterAddAndRemove()
+   {
+      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1);
+      
+      Filter filter = new FakeFilter("fruit", "orange");
+      
+      FakeConsumer consumer = new FakeConsumer(filter);
+   }
+   
    public void testList()
    {
       Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1);
@@ -1097,6 +1006,77 @@
    }
    */
    
+   public void testConsumeWithFiltersAddAndRemoveConsumer()
+   {
+      Queue queue = new QueueImpl(1, "queue1", null, false, true, false, -1);
+      
+      Filter filter = new FakeFilter("fruit", "orange");
+      
+      FakeConsumer consumer = new FakeConsumer(filter);
+      
+      queue.addConsumer(consumer);
+                        
+      List<MessageReference> refs = new ArrayList<MessageReference>();
+      
+      MessageReference ref1 = generateReference(queue, 1);
+      
+      ref1.getMessage().putHeader("fruit", "banana");
+      
+      assertEquals(HandleStatus.HANDLED, queue.addLast(ref1));
+      
+      MessageReference ref2 = generateReference(queue, 2);
+      
+      ref2.getMessage().putHeader("fruit", "orange");
+      
+      assertEquals(HandleStatus.HANDLED, queue.addLast(ref2));     
+      
+      refs.add(ref2);
+      
+     
+      assertEquals(2, queue.getMessageCount());
+      
+      assertEquals(1, consumer.getReferences().size());
+      
+      assertEquals(1, queue.getDeliveringCount());
+            
+      assertRefListsIdenticalRefs(refs, consumer.getReferences()); 
+      
+      queue.referenceAcknowledged();
+
+      queue.removeConsumer(consumer);
+            
+      queue.addConsumer(consumer);
+      
+      queue.deliver();
+      
+
+      refs.clear();
+      
+      consumer.clearReferences();
+      
+      MessageReference ref3 = generateReference(queue, 3);
+      
+      ref3.getMessage().putHeader("fruit", "banana");
+      
+      assertEquals(HandleStatus.HANDLED, queue.addLast(ref3));
+      
+      MessageReference ref4 = generateReference(queue, 4);
+      
+      ref4.getMessage().putHeader("fruit", "orange");
+      
+      assertEquals(HandleStatus.HANDLED, queue.addLast(ref4)); 
+       
+      refs.add(ref4);
+      
+      assertEquals(3, queue.getMessageCount());
+      
+      assertEquals(1, consumer.getReferences().size());
+      
+      assertEquals(1, queue.getDeliveringCount());
+      
+      assertRefListsIdenticalRefs(refs, consumer.getReferences());
+   }
+   
    // Private ------------------------------------------------------------------------------
    
    private void testConsumerWithFilters(boolean direct)
@@ -1187,6 +1167,12 @@
       assertEquals(4, queue.getDeliveringCount());
    }
    
+   
+   
+  
+   
+   
+   
    // Inner classes ---------------------------------------------------------------
         
    class DummyDistributionPolicy implements DistributionPolicy

Modified: trunk/tests/src/org/jboss/test/messaging/jms/selector/SelectorTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/selector/SelectorTest.java	2008-01-16 21:38:26 UTC (rev 3580)
+++ trunk/tests/src/org/jboss/test/messaging/jms/selector/SelectorTest.java	2008-01-17 11:53:53 UTC (rev 3581)
@@ -412,13 +412,13 @@
 
 	         for (int j = 0; j < 10; j++)
 	         {
-	            Message m = sess.createMessage();
+	            TextMessage m = sess.createTextMessage("message-a-" + j);
 
 	            m.setStringProperty("beatle", "john");
 
 	            prod.send(m);
 
-	            m = sess.createMessage();
+	            m = sess.createTextMessage("messag-b-" + j);
 
 	            m.setStringProperty("beatle", "kermit the frog");
 
@@ -429,7 +429,7 @@
 	         {
 	            Message m = cons1.receive(1000);
 	            
-	            log.info("Got message " + m);
+	          //  log.info("Got message " + m);
 
 	            assertNotNull(m);
 	         }




More information about the jboss-cvs-commits mailing list