User: hiram   
  Date: 00/12/26 11:54:32

  Modified:    src/java/org/spydermq/server ExclusiveQueue.java
                        SharedQueue.java
  Log:
  Bug Fix: messages were not being delivered to topics.
  
  Revision  Changes    Path
  1.3       +4 -8      spyderMQ/src/java/org/spydermq/server/ExclusiveQueue.java
  
  Index: ExclusiveQueue.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/spyderMQ/src/java/org/spydermq/server/ExclusiveQueue.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ExclusiveQueue.java       2000/12/24 01:55:07     1.2
  +++ ExclusiveQueue.java       2000/12/26 19:54:32     1.3
  @@ -10,17 +10,13 @@
   import javax.jms.JMSException;
   import javax.jms.DeliveryMode;
   
  -import org.spydermq.*;
  -import org.spydermq.persistence.SpyMessageLog;
   import org.spydermq.selectors.Selector;
  +import org.spydermq.Log;
  +import org.spydermq.SpyMessage;
   
   import java.util.Iterator;
  -import java.util.Hashtable;
   import java.util.LinkedList;
  -import java.util.HashMap;
  -import java.util.TreeSet;
   
  -
   /**
    *   This class represents a queue which provides it's messages
    *  exclusivly to one consumer at a time.
  @@ -28,7 +24,7 @@
    *   @author Hiram Chirino ([EMAIL PROTECTED])
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.2 $
  + *   @version $Revision: 1.3 $
    */
   public class ExclusiveQueue extends BasicQueue {
   
  @@ -36,7 +32,7 @@
        String queueId;
        
        public void addMessage(SpyMessage mes, Long txId) throws JMSException
  -     {
  +     { 
   
                // Persist the message if it was persistent
                if( mes.getJMSDeliveryMode() == DeliveryMode.PERSISTENT ) 
  @@ -59,7 +55,7 @@
        {               
                
                Log.log(""+this+"->run()");
  -             
  +              
                synchronized (messages) {                                              
 
                        synchronized (consumers) {
                                                                
  
  
  
  1.3       +17 -17    spyderMQ/src/java/org/spydermq/server/SharedQueue.java
  
  Index: SharedQueue.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/spyderMQ/src/java/org/spydermq/server/SharedQueue.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SharedQueue.java  2000/12/24 01:55:06     1.2
  +++ SharedQueue.java  2000/12/26 19:54:32     1.3
  @@ -10,15 +10,12 @@
   import javax.jms.JMSException;
   import javax.jms.DeliveryMode;
   
  -import org.spydermq.*;
  -import org.spydermq.persistence.SpyMessageLog;
  +import org.spydermq.Log;
  +import org.spydermq.SpyMessage;
   
   import java.util.Iterator;
  -import java.util.Hashtable;
  -import java.util.LinkedList;
  -import java.util.HashMap;
  -import java.util.TreeSet;
   
  +
   /**
    *   This class is a message queue which allows sending a single message
    *  to multiple consumers.
  @@ -26,40 +23,39 @@
    *   @author Hiram Chirino ([EMAIL PROTECTED])
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.2 $
  + *   @version $Revision: 1.3 $
    */
   public class SharedQueue extends BasicQueue {
   
  -     //List of Pending messages
  -     private TreeSet messages;
  -     //The JMSServer object
  -     JMSServer server;
  -     //DistributedConnection objs that have "registered" to this Destination
  -     private LinkedList consumers;
  -
        // Constructor ---------------------------------------------------         
        SharedQueue(JMSServer server) throws JMSException
        {
                super( server );
  -             consumers=new LinkedList();
  -             messages=new TreeSet();                 
        }
   
   
        // This will dispatch messages in the queue the the ClientConsumers
        public void run() throws JMSException 
        {       
  +             Log.log(""+this+"->run()");
                SpyMessage[] job;
  -             
  +                              
                synchronized (messages) {
  -                     if( messages.size() == 0 )
  +                     if( messages.size() == 0 ) {
  +                             Log.log(""+this+"->run() : No Messages");
                                return;
  +                     }
                                
                        job=new SpyMessage[messages.size()];
                        job=(SpyMessage[])messages.toArray(job);
                        messages.clear();                       
                }
   
  +             if( consumers.size() == 0 ) {
  +                     Log.log(""+this+"->run() : No consumers");
  +                     return;
  +             }
  +             
                Iterator iter = consumers.iterator();
                while( iter.hasNext() ) {
                        
  @@ -72,5 +68,9 @@
                        
                }
                        
  +     }
  +
  +     public String toString() {
  +             return "SharedQueue";
        }
   }
  
  
  

Reply via email to