User: hiram   
  Date: 01/02/21 14:52:00

  Modified:    src/main/org/jbossmq AcknowledgementRequest.java
                        SpyConnection.java SpyMessage.java
                        SpyMessageConsumer.java SpyXAResourceManager.java
  Log:
  Bug fix: Acking durable subscriber messages was causing exceptions.
  Bug reported by: Polina Alber <[EMAIL PROTECTED]> and Greg Lappen 
<[EMAIL PROTECTED]>
  
  Revision  Changes    Path
  1.2       +4 -3      jbossmq/src/main/org/jbossmq/AcknowledgementRequest.java
  
  Index: AcknowledgementRequest.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jbossmq/src/main/org/jbossmq/AcknowledgementRequest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AcknowledgementRequest.java       2001/01/26 00:43:29     1.1
  +++ AcknowledgementRequest.java       2001/02/21 22:51:58     1.2
  @@ -17,7 +17,7 @@
    *
    * @author Hiram Chirino ([EMAIL PROTECTED])
    *
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
   public class AcknowledgementRequest
        implements java.io.Serializable
  @@ -26,7 +26,7 @@
        public boolean isAck;
        public Destination destination=null;
        public String messageID=null;
  -     transient public int subscriberId;
  +     public int subscriberId;
   
        public boolean equals(Object o) {
                
  @@ -34,7 +34,8 @@
                        return false;
                        
                return messageID.equals(((AcknowledgementRequest)o).messageID) &&
  -                     destination.equals(((AcknowledgementRequest)o).destination);
  +                     destination.equals(((AcknowledgementRequest)o).destination) &&
  +                     subscriberId == ((AcknowledgementRequest)o).subscriberId ;
                        
        }
   
  
  
  
  1.3       +1 -0      jbossmq/src/main/org/jbossmq/SpyConnection.java
  
  Index: SpyConnection.java
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossmq/src/main/org/jbossmq/SpyConnection.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SpyConnection.java        2001/02/14 00:41:33     1.2
  +++ SpyConnection.java        2001/02/21 22:51:58     1.3
  @@ -38,7 +38,7 @@
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    *   @author Hiram Chirino ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.2 $
  + *   @version $Revision: 1.3 $
    */
   public class SpyConnection implements java.io.Serializable, javax.jms.Connection {
        //////////////////////////////////////////////////////////////
  @@ -463,6 +463,7 @@
                                }
   
                                requests[i].message.shouldAck = true;
  +                             requests[i].message.routeToSubscriber = 
requests[i].subscriptionId.intValue();
                                consumer.addMessage(requests[i].message);
                                consumersUsed.add(consumer);
                                
  
  
  
  1.3       +3 -0      jbossmq/src/main/org/jbossmq/SpyMessage.java
  
  Index: SpyMessage.java
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossmq/src/main/org/jbossmq/SpyMessage.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SpyMessage.java   2001/02/14 00:46:38     1.2
  +++ SpyMessage.java   2001/02/21 22:51:58     1.3
  @@ -22,7 +22,7 @@
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    *   @author Hiram Chirino ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.2 $
  + *   @version $Revision: 1.3 $
    */
   public class SpyMessage 
        implements Serializable, Cloneable, Message, Comparable
  @@ -472,7 +472,10 @@
                item.destination = jmsDestination;
                item.messageID = jmsMessageID;
                item.isAck = isAck;
  +             item.subscriberId = routeToSubscriber;
                return item;            
                
        }
  +
  +     public transient int routeToSubscriber;
   }
  
  
  
  1.2       +5 -3      jbossmq/src/main/org/jbossmq/SpyMessageConsumer.java
  
  Index: SpyMessageConsumer.java
  ===================================================================
  RCS file: /products/cvs/ejboss/jbossmq/src/main/org/jbossmq/SpyMessageConsumer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SpyMessageConsumer.java   2001/01/26 00:43:34     1.1
  +++ SpyMessageConsumer.java   2001/02/21 22:51:59     1.2
  @@ -26,7 +26,7 @@
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    *   @author Hiram Chirino ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class SpyMessageConsumer implements MessageConsumer, SpyConsumer {
   
  @@ -253,14 +253,16 @@
                                        (this instanceof SpyQueueReceiver || 
subscription.durableSubscriptionName!=null) ) {
   
                                Message mes = getMessage();
  -                             while (mes != null) {
  +                             while (mes != null ) {
   
                                        Log.log("Got unrequested message, sending NACK 
for: " + mes);
                                        AcknowledgementRequest item = new 
AcknowledgementRequest();
                                        item.destination = mes.getJMSDestination();
                                        item.messageID = mes.getJMSMessageID();
                                        item.isAck = false;
  -
  +                                     if( mes instanceof SpyMessage ) {
  +                                             item.subscriberId = 
((SpyMessage)mes).routeToSubscriber;
  +                                     }
                                        session.connection.send(item);
   
                                        mes = getMessage();
  
  
  
  1.2       +2 -1      jbossmq/src/main/org/jbossmq/SpyXAResourceManager.java
  
  Index: SpyXAResourceManager.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jbossmq/src/main/org/jbossmq/SpyXAResourceManager.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SpyXAResourceManager.java 2001/01/26 00:43:39     1.1
  +++ SpyXAResourceManager.java 2001/02/21 22:51:59     1.2
  @@ -19,7 +19,7 @@
    *
    *   @author Hiram Chirino ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class SpyXAResourceManager implements java.io.Serializable {
   
  @@ -69,6 +69,7 @@
                item.destination = msg.getJMSDestination();
                item.messageID = msg.getJMSMessageID();
                item.isAck = true;
  +             item.subscriberId = msg.routeToSubscriber;
                state.ackedMessages.addLast(item);
        }
   
  
  
  

Reply via email to