title: Spring-rabbit - ReturnCallback not triggered
body: <p>I am having problems configuring ReturnCallback when i get a Nack while publishing on an exchange. Here is what I do:</p>
  
  <pre><code>CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
  connectionFactory.setPublisherConfirms(true);
  connectionFactory.setPublisherReturns(true);
  ...
  RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory());
  rabbitTemplate.setMandatory(true);
  rabbitTemplate.setConfirmCallback(new MyMessageConfirmCallback());
  rabbitTemplate.setReturnCallback(new MyMessageReturnCallback());
  </code></pre>
  
  <p>Then when I publish a message, I send a message to a non-existing exchange</p>
  
  <pre><code>notificationProducerJmsTemplate.send("idontexist.exchange",
                                       "idontexist.key",
                                        messageToSend, 
                                        correlationData);
  </code></pre>
  
  <p>The strange thing is that I reach the code defined in <code>MyMessageConfirmCallback</code> but not the one in <code>MyMessageReturnCallback</code>, even if in the first one the value of <code>ack</code> is <code>false</code>. </p>
  
  <p>I am using RabbitMQ 3.4.2 and here is my maven dependency:</p>
  
  <pre><code>&lt;dependency&gt;
      &lt;groupId&gt;org.springframework.amqp&lt;/groupId&gt;
      &lt;artifactId&gt;spring-rabbit&lt;/artifactId&gt;
      &lt;version&gt;1.4.3.RELEASE&lt;/version&gt;
  &lt;/dependency&gt;
  </code></pre>
  
  <p>Last but not least, here is the error message that I can see in the logs:</p>
  
  <pre><code>2015-03-26 16:29:24,094 GMT [pool-21-thread-1] (CachingConnectionFactory.java:281) ERROR connection.CachingConnectionFactory: Channel shutdown: channel error; protocol method: #method&lt;channel.close&gt;(reply-code=404, reply-text=NOT_FOUND - no exchange 'idontexist.exchange' in vhost '/', class-id=60, method-id=40)
  </code></pre>
  
  <p>Anybody see something wrong ? Any hint on what to check to find out what could prevent the ReturnCallback to be called ?</p>