User: hiram   
  Date: 01/01/03 15:25:07

  Modified:    src/java/org/spydermq/server ClientConsumer.java
                        JMSDestination.java ExclusiveQueue.java
                        JMSServer.java
  Log:
  BugFix: Temporary Topics were not working correctly.
  
  Revision  Changes    Path
  1.5       +0 -0      spyderMQ/src/java/org/spydermq/server/ClientConsumer.java
  
  Index: ClientConsumer.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/spyderMQ/src/java/org/spydermq/server/ClientConsumer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ClientConsumer.java       2000/12/31 23:46:33     1.4
  +++ ClientConsumer.java       2001/01/03 23:25:06     1.5
  @@ -27,7 +27,7 @@
    *
    *   @author Hiram Chirino ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.4 $
  + *   @version $Revision: 1.5 $
    */
   public class ClientConsumer implements Task {
   
  
  
  
  1.4       +27 -12    spyderMQ/src/java/org/spydermq/server/JMSDestination.java
  
  Index: JMSDestination.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/spyderMQ/src/java/org/spydermq/server/JMSDestination.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JMSDestination.java       2000/12/27 17:02:21     1.3
  +++ JMSDestination.java       2001/01/03 23:25:06     1.4
  @@ -26,7 +26,7 @@
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    *   @author Hiram Chirino ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.3 $
  + *   @version $Revision: 1.4 $
    */
   public class JMSDestination {
   
  @@ -57,13 +57,11 @@
                
                sharedQueue = new SharedQueue(server);
                
  -             // If this is not a temp destination, then we should persist data
  -             if( temporaryDestination == null ) {
  -                     if( isTopic ) {
  -                             // Not Implemented yet
  -                             // TODO: init durable topic subscriber exclusive 
queues here
  -                     } else {
  -                             exclusiveQueues.put(DEFAULT_QUEUE_ID, new 
ExclusiveQueue(server, DEFAULT_QUEUE_ID));
  +             if( !isTopic ) {
  +                     exclusiveQueues.put(DEFAULT_QUEUE_ID, new 
ExclusiveQueue(server));
  +
  +                     // If this is a non-temp queue, then we should persist data
  +                     if( temporaryDestination == null ) {
                                server.persistenceManager.initQueue(dest, 
DEFAULT_QUEUE_ID);
                        }
                }
  @@ -74,6 +72,13 @@
        {
        
                Log.log(""+this+"->addMessage(mes="+mes+",txId="+txId+")");
  +
  +             if( mes.getJMSDeliveryMode() == DeliveryMode.PERSISTENT &&
  +                     temporaryDestination!=null ) {
  +                     throw new JMSException("Cannot write a persistent message to a 
temporary destination!");
  +             }
  +
  +             
                //Number the message so that we can preserve order of delivery.
                mes.messageId = messageIdCounter++;
   
  @@ -86,16 +91,26 @@
                                if( exclusiveQueues.size() == 0 )
                                        return;
                
  -                             Iterator iter = exclusiveQueues.values().iterator();
  +                             Iterator iter = exclusiveQueues.keySet().iterator();
                                while( iter.hasNext() ) {
  -                                     ExclusiveQueue eq = 
(ExclusiveQueue)iter.next();
  +                                     
  +                                     String queueId = (String)iter.next();
  +                                     ExclusiveQueue eq = 
(ExclusiveQueue)exclusiveQueues.get(queueId);
  +
  +                                     if( mes.getJMSDeliveryMode() == 
DeliveryMode.PERSISTENT ) 
  +                                             server.persistenceManager.add(queueId, 
mes, txId);
  +                                             
                                        eq.addMessage(mes, txId);
  +                                     
                                }
                        }
                        
                } else {
                        
                        ExclusiveQueue eq = (ExclusiveQueue)exclusiveQueues.get( 
DEFAULT_QUEUE_ID );
  +                     if( mes.getJMSDeliveryMode() == DeliveryMode.PERSISTENT ) 
  +                             server.persistenceManager.add(DEFAULT_QUEUE_ID, mes, 
txId);
  +                             
                        eq.addMessage(mes, txId);
                        
                }
  @@ -122,7 +137,7 @@
        }
   
        public SpyMessage[] browse(String selector) throws JMSException {
  -             Log.log(""+this+"->browse(selector="+selector+")");             
  +             Log.log(""+this+"->browse(selector="+selector+")");
                ExclusiveQueue eq = getExclusiveQueue( DEFAULT_QUEUE_ID );
                return eq.browse( selector );
        }
  @@ -190,7 +205,7 @@
                String queueId = 
durableSubscriptionToQueueId(clientId,subscriptionName);
                
                synchronized (exclusiveQueues) {
  -                     exclusiveQueues.put(queueId, new ExclusiveQueue(server, 
queueId));              
  +                     exclusiveQueues.put(queueId, new ExclusiveQueue(server));
                }
                
                server.persistenceManager.initQueue(destination, queueId);
  
  
  
  1.4       +8 -22     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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ExclusiveQueue.java       2000/12/26 19:54:32     1.3
  +++ ExclusiveQueue.java       2001/01/03 23:25:06     1.4
  @@ -24,30 +24,10 @@
    *   @author Hiram Chirino ([EMAIL PROTECTED])
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.3 $
  + *   @version $Revision: 1.4 $
    */
   public class ExclusiveQueue extends BasicQueue {
   
  -     //The queueId needed to identify this queue with the persistence manager.
  -     String queueId;
  -     
  -     public void addMessage(SpyMessage mes, Long txId) throws JMSException
  -     { 
  -
  -             // Persist the message if it was persistent
  -             if( mes.getJMSDeliveryMode() == DeliveryMode.PERSISTENT ) 
  -                     server.persistenceManager.add(queueId, mes, txId);
  -                     
  -             super.addMessage(mes, txId);
  -             
  -     }
  -     
  -     // Constructor ---------------------------------------------------         
  -     public ExclusiveQueue(JMSServer server, String queueId) throws JMSException
  -     {
  -             super(server);
  -             this.queueId = queueId;                                 
  -     }
   
        // Iterate over the consumers asking them to take messages until they stop
        // consuming.
  @@ -88,6 +68,12 @@
        }
   
        public String toString() {
  -             return "ExclusiveQueue:"+queueId;
  +             return "ExclusiveQueue";
  +     }
  +
  +     // Constructor ---------------------------------------------------         
  +     public ExclusiveQueue(JMSServer server) throws JMSException
  +     {
  +             super(server);
        }
   }
  
  
  
  1.10      +0 -0      spyderMQ/src/java/org/spydermq/server/JMSServer.java
  
  Index: JMSServer.java
  ===================================================================
  RCS file: /products/cvs/ejboss/spyderMQ/src/java/org/spydermq/server/JMSServer.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- JMSServer.java    2000/12/31 23:46:33     1.9
  +++ JMSServer.java    2001/01/03 23:25:06     1.10
  @@ -27,7 +27,7 @@
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    *   @author Hiram Chirino ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.9 $
  + *   @version $Revision: 1.10 $
    */
   public class JMSServer 
                implements Runnable, JMSServerMBean
  
  
  

Reply via email to