subscription.handleDontPersist(null, ref, null);
queue.handleFromCluster(null, ref, null);
   public void routeFromCluster(org.jboss.messaging.core.Message message, String routingKey,                                Map queueNameNodeIdMap) throws Exception   {      lock.readLock().acquire();              // Need to reference the message      MessageReference ref = null;      try      {         ref = ms.reference(message);                       // We route on the condition         ConditionBindings cb = (ConditionBindings)conditionMap.get(routingKey);               if (cb != null)         {                                            List bindings = cb.getAllBindings();                        Iterator iter = bindings.iterator();                        while (iter.hasNext())            {               Binding binding = (Binding)iter.next();                                                            if (binding.isActive())               {                              if (binding.getNodeId().equals(this.nodeId))                  {                       boolean handle = true;                                          if (queueNameNodeIdMap != null)                     {                        String desiredNodeId = (String)queueNameNodeIdMap.get(binding.getQueueName());                                                //When there are more than one queues with the same name across the cluster we only                        //want to chose one of them                                                if (desiredNodeId != null)                        {                           handle = desiredNodeId.equals(nodeId);                        }                     }                                          if (handle)                     {                        //It's a local binding so we pass the message on to the subscription                        Queue subscription = binding.getQueue();                                             //TODO instead of adding a new method on the channel                        //we should set a header and use the same method                        subscription.handleDontPersist(null, ref, null);                     }                  }                                              }            }                                   }      }      finally      {         if (ref != null)         {            ref.releaseMemoryReference();         }         lock.readLock().release();      }   }