User: dmaplesden
  Date: 01/09/19 20:52:57

  Modified:    src/main/org/jboss/mq/server JMSTopic.java
                        ClientConsumer.java
  Log:
  fixed bug for message acknowledgement after receiver closed for topics
  
  Revision  Changes    Path
  1.5       +9 -2      jbossmq/src/main/org/jboss/mq/server/JMSTopic.java
  
  Index: JMSTopic.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/server/JMSTopic.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JMSTopic.java     2001/08/17 03:04:06     1.4
  +++ JMSTopic.java     2001/09/20 03:52:57     1.5
  @@ -26,7 +26,7 @@
    * @author     Hiram Chirino ([EMAIL PROTECTED])
    * @author     David Maplesden ([EMAIL PROTECTED])
    * @created    August 16, 2001
  - * @version    $Revision: 1.4 $
  + * @version    $Revision: 1.5 $
    */
   public class JMSTopic extends JMSDestination {
   
  @@ -86,7 +86,7 @@
         DurableSubcriptionID id = topic.getDurableSubscriptionID();
         if ( id == null ) {
            synchronized ( tempQueues ) {
  -            queue = ( BasicQueue )tempQueues.remove( sub );
  +            queue = ( BasicQueue )tempQueues.get( sub );
            }
         } else {
            synchronized ( durQueues ) {
  @@ -97,6 +97,13 @@
         queue.removeSubscriber( sub );
      }
   
  +   void cleanupSubscription(Subscription sub){
  +      //just try to remove from tempQueues, don't worry if its not there
  +      synchronized ( tempQueues ) {
  +         tempQueues.remove( sub );
  +      }
  +   }
  +   
      public void addReceiver( Subscription sub ) {
         getQueue( sub ).addReceiver( sub );
      }
  
  
  
  1.6       +8 -2      jbossmq/src/main/org/jboss/mq/server/ClientConsumer.java
  
  Index: ClientConsumer.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/server/ClientConsumer.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ClientConsumer.java       2001/08/29 22:45:58     1.5
  +++ ClientConsumer.java       2001/09/20 03:52:57     1.6
  @@ -25,7 +25,7 @@
    *
    * @author     Hiram Chirino ([EMAIL PROTECTED])
    * @created    August 16, 2001
  - * @version    $Revision: 1.5 $
  + * @version    $Revision: 1.6 $
    */
   public class ClientConsumer implements Runnable {
      //The JMSServer object
  @@ -256,8 +256,14 @@
      }
   
      void removeRemovedSubscription( int subId ) {
  +      Subscription sub = null;
         synchronized ( subscriptions ) {
  -         removedSubscriptions.remove( new Integer( subId ) );
  +         sub = (Subscription) removedSubscriptions.remove( new Integer( subId ) );
  +      }
  +      if(sub != null){
  +         JMSDestination topic = server.getJMSDestination( sub.destination );
  +         if(topic instanceof JMSTopic)
  +            ((JMSTopic) topic).cleanupSubscription(sub);
         }
      }
   }
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to