User: pkendall
  Date: 01/07/29 15:54:58

  Modified:    src/main/org/jbossmq/server JMSServer.java
                        ClientConsumer.java
  Log:
  receiveNoWait bug fixes (didn't ACK messages)
  clone only messages sent to more than one subscriber
  only clone messages on send if transacted or using JVM IL
  setReadOnlyMode on serverside so apps can still modify message after send
  
  Revision  Changes    Path
  1.18      +3 -3      jbossmq/src/main/org/jbossmq/server/JMSServer.java
  
  Index: JMSServer.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbossmq/src/main/org/jbossmq/server/JMSServer.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- JMSServer.java    2001/07/28 16:11:36     1.17
  +++ JMSServer.java    2001/07/29 22:54:58     1.18
  @@ -42,7 +42,7 @@
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    *   @author Hiram Chirino ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.17 $
  + *   @version $Revision: 1.18 $
    */
   public class JMSServer 
   {
  @@ -215,13 +215,13 @@
        //A connection has sent a new message
        public void addMessage(ConnectionToken dc, SpyMessage val, Long txId) throws 
JMSException 
        {
  -     
                cat.debug("INCOMING: (TX="+txId+")"+dc.getClientID()+" => 
"+val.getJMSDestination());   
                JMSDestination 
queue=(JMSDestination)destinations.get(val.getJMSDestination());
                if (queue==null) throw new JMSException("This destination does not 
exist !");   
  +
                //Add the message to the queue
  +             val.setReadOnlyMode();
                queue.addMessage(val, txId);
  -             
        }
        
        /**
  
  
  
  1.11      +16 -2     jbossmq/src/main/org/jbossmq/server/ClientConsumer.java
  
  Index: ClientConsumer.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbossmq/src/main/org/jbossmq/server/ClientConsumer.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ClientConsumer.java       2001/07/28 00:30:16     1.10
  +++ ClientConsumer.java       2001/07/29 22:54:58     1.11
  @@ -31,7 +31,7 @@
    *
    *   @author Hiram Chirino ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.10 $
  + *   @version $Revision: 1.11 $
    */
   public class ClientConsumer implements Runnable {
   
  @@ -246,7 +246,21 @@
   
                // Is it a receiveNoWait()
                if( wait == -1 && req.subscription.actsLikeAQueue ) {
  -                     return req.dest.receiveNoWait(req.subscription);
  +                     SpyMessage message = req.dest.receiveNoWait(req.subscription);
  +
  +                     if( message != null ) {
  +                             AcknowledgementRequest ack = new 
AcknowledgementRequest();
  +                             ack.destination = message.getJMSDestination();
  +                             ack.messageID = message.getJMSMessageID();
  +                             ack.subscriberId = subscriberId;
  +                             ack.isAck = false;
  +
  +                             synchronized (unacknowledgedMessages) {
  +                                     unacknowledgedMessages.put(ack, message);
  +                             }
  +                     }
  +
  +                     return message;
                }
   
                // Notify the queue. It could be waiting for a consumer
  
  
  

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

Reply via email to