public Binding bindQueue(String queueName, String condition, Queue queue) throws Exception
public Binding bindQueue(String queueName, String condition, Filter filter, Queue queue) throws Exception
   public Binding bindQueue(String queueName, String condition, Queue queue) throws Exception   {      if (queueName == null)      {         throw new IllegalArgumentException("Queue name is null");      }            if (condition == null)      {         throw new IllegalArgumentException("Condition is null");      }            lock.writeLock().acquire();      try      {                  //We currently only allow one binding per name per node         Map nameMap = (Map)nameMaps.get(this.nodeId);                  Binding binding = null;                  if (nameMap != null)         {            binding = (Binding)nameMap.get(queueName);         }                  if (binding != null)         {            throw new IllegalArgumentException("Binding already exists for name " + queueName);         }                  boolean durable = queue.isRecoverable();                  String filter = queue.getFilter() == null ? null : queue.getFilter().getFilterString();                             binding = createBinding(nodeId, queueName, condition, filter,                                   queue.getChannelID(), durable);                           binding.setQueue(queue);                  binding.activate();                  addBinding(binding);                        if (durable)         {            //Need to write the binding to the db                        insertBinding(binding);                }                                    return binding;         }      finally      {         lock.writeLock().release();      }   }   