code: public void handleDelivery(String consumerTag, Envelope envelope, BasicProperties properties, byte[] body)
          throws IOException {
          LOGGER.debug("Consumer {}: Received handle delivery", consumerTag);
          Message message = new Message(properties)
                  .exchange(envelope.getExchange())
                  .routingKey(envelope.getRoutingKey())
                  .deliveryTag(envelope.getDeliveryTag())
                  .body(body);
          try {
              LOGGER.info("Consumer {}: Received message {}", consumerTag, envelope.getDeliveryTag());
              handleMessage(message);
          } catch (Throwable t) {
              if (!getConfiguration().isAutoAck()) {
                  LOGGER.error("Consumer {}: Message {} could not be handled due to an exception during message processing", 
                      new Object[] { consumerTag, envelope.getDeliveryTag(), t });
                  getChannel().basicNack(envelope.getDeliveryTag(), false, false);
                  LOGGER.warn("Consumer {}: Nacked message {}",
                      new Object[] { consumerTag, envelope.getDeliveryTag(), t });
              }
              return;
          }
          if (!getConfiguration().isAutoAck()) {
              try {
                  getChannel().basicAck(envelope.getDeliveryTag(), false);
                  LOGGER.debug("Consumer {}: Acked message {}", consumerTag, envelope.getDeliveryTag() );
              } catch(IOException e) {
                  LOGGER.error("Consumer {}: Message {} was processed but could not be acknowledged due to an exception when sending the acknowledgement", 
                      new Object[] { consumerTag, envelope.getDeliveryTag(), e });
                  throw e;
              }
          }
      }
docs: <p>Handles a message delivery from the broker by converting the received
  message parts to a {@link com.zanox.rabbiteasy.Message} which provides convenient access to
  the message parts and hands it over to the {@link #handleMessage(com.zanox.rabbiteasy.Message)}
  method.</p>