User: chirino 
  Date: 01/12/08 21:56:36

  Modified:    src/main/org/jboss/mq/server BasicQueue.java
                        ClientConsumer.java
  Log:
  updated the dc variable to connectionToken. more readable.
  fixed the NoLocal bug that was reported on the user forums.
  testcase in the suite shows now that it is working.
  
  Revision  Changes    Path
  1.10      +5 -4      jbossmq/src/main/org/jboss/mq/server/BasicQueue.java
  
  Index: BasicQueue.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/server/BasicQueue.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- BasicQueue.java   2001/11/14 01:53:40     1.9
  +++ BasicQueue.java   2001/12/09 05:56:36     1.10
  @@ -31,7 +31,7 @@
    * @author     Norbert Lataille ([EMAIL PROTECTED])
    * @author     David Maplesden ([EMAIL PROTECTED])
    * @created    August 16, 2001
  - * @version    $Revision: 1.9 $
  + * @version    $Revision: 1.10 $
    */
   //abstract public class BasicQueue implements Runnable {
   public class BasicQueue {
  @@ -144,9 +144,9 @@
   
      public SpyMessage receive(Subscription sub, boolean wait) throws JMSException {
         MessageReference messageRef = null;
  -      Selector selector = sub.getSelector();
         synchronized (receivers) {
  -         if (selector == null) {
  +              // If the subscription is not picky, the first message will be it
  +         if (sub.getSelector() == null && sub.noLocal==false ) {
               synchronized (messages) {
                  if (messages.size() != 0) {
                          messageRef = (MessageReference)messages.first();
  @@ -154,11 +154,12 @@
                  }
               }
            } else {
  +             // The subscription is picky, so we have to iterate.
               synchronized (messages) {
                  Iterator i = messages.iterator();
                  while (i.hasNext()) {
                     MessageReference mr = (MessageReference) i.next();
  -                  if (selector.test(mr.getHeaders())) {
  +                  if (sub.accepts(mr.getHeaders())) {
                        messageRef = mr;
                        i.remove();
                        break;
  
  
  
  1.10      +9 -9      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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- ClientConsumer.java       2001/11/26 06:33:12     1.9
  +++ ClientConsumer.java       2001/12/09 05:56:36     1.10
  @@ -33,7 +33,7 @@
    *
    * @author     Hiram Chirino ([EMAIL PROTECTED])
    * @created    August 16, 2001
  - * @version    $Revision: 1.9 $
  + * @version    $Revision: 1.10 $
    */
   public class ClientConsumer implements Work
   {
  @@ -41,7 +41,7 @@
      //The JMSServer object
      JMSServer server;
      //The connection this queue will send messages over
  -   ConnectionToken dc;
  +   ConnectionToken connectionToken;
      //Is this connection enabled (Can we transmit to the receiver)
      boolean enabled;
      //Has this connection been closed?
  @@ -73,11 +73,11 @@
      
      // Constructor ---------------------------------------------------
      
  -   public ClientConsumer(JMSServer server, ConnectionToken dc) throws JMSException
  +   public ClientConsumer(JMSServer server, ConnectionToken connectionToken) throws 
JMSException
      {
         this.server = server;
  -      this.dc = dc;
  -      log = Logger.getLogger(ClientConsumer.class.getName() + ":" + 
dc.getClientID());
  +      this.connectionToken = connectionToken;
  +      log = Logger.getLogger(ClientConsumer.class.getName() + ":" + 
connectionToken.getClientID());
         // Create thread pool
         synchronized (ClientConsumer.class)
         {
  @@ -130,7 +130,7 @@
      {
         if( log.isTraceEnabled() )
            log.trace("Adding subscription for: " + req);
  -      req.dc = dc;
  +      req.connectionToken = connectionToken;
         req.clientConsumer = this;
         
         JMSDestination jmsdest = (JMSDestination) 
server.getJMSDestination(req.destination);
  @@ -272,7 +272,7 @@
            }
            
            
  -         dc.clientIL.receive(job);
  +         connectionToken.clientIL.receive(job);
            
         }
         catch(Exception e)
  @@ -280,7 +280,7 @@
            log.warn("Could not send messages to a receiver.", e);
            try
            {
  -            server.connectionFailure(dc);
  +            server.connectionFailure(connectionToken);
            }
            catch(Throwable ignore)
            {
  @@ -291,7 +291,7 @@
      
      public String toString()
      {
  -      return "ClientConsumer:" + dc.getClientID();
  +      return "ClientConsumer:" + connectionToken.getClientID();
      }
      
      public void acknowledge(AcknowledgementRequest request, org.jboss.mq.pm.Tx txId) 
throws JMSException
  
  
  

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

Reply via email to