if (!exch.isBound(routingKey, body.getArguments(), queue))
{
String bindingKey = String.valueOf(routingKey);
Map<String,Object> arguments = FieldTable.convertToMap(body.getArguments());
if(!exch.addBinding(bindingKey, queue, arguments) && ExchangeDefaults.TOPIC_EXCHANGE_CLASS.equals(exch.getTypeShortString()))
{
Binding oldBinding = exch.getBinding(bindingKey, queue, arguments);
Map<String, Object> oldArgs = oldBinding.getArguments();
if((oldArgs == null && !arguments.isEmpty()) || (oldArgs != null && !oldArgs.equals(arguments)))