binding = new ClusteredBindingImpl(nodeId, queueName, condition, filterString,
binding = new ClusteredBindingImpl(nodeId, queueName, condition, new Selector(filterString),
   public void addBindingFromCluster(String nodeId, String queueName, String condition,                                     String filterString, long channelID, boolean durable)      throws Exception   {      lock.writeLock().acquire();            try      {                              //Sanity         if (!nodeIdAddressMap.containsKey(nodeId))         {            throw new IllegalStateException("Cannot find address for node: " + nodeId);         }                  // We currently only allow one binding per name per node         Map nameMap = (Map)nameMaps.get(nodeId);                  Binding binding = null;                  if (nameMap != null)         {            binding = (Binding)nameMap.get(queueName);         }                  if (binding != null)         {            throw new IllegalArgumentException(this.nodeId + "Binding already exists for node Id " + nodeId + " queue name " + queueName);         }                  binding = new ClusteredBindingImpl(nodeId, queueName, condition, filterString,                                           channelID, durable);                   binding.activate();                  addBinding(binding);               }      finally      {         lock.writeLock().release();      }   }