/**
  * Handle the message via {@link #innerHandle(AjahMessage)} and then call handle on child
  * handlers.
  *
  * @see com.ajah.rfcmail.fetch.MessageHandler#handle(AjahMimeMessage)
  */
 @Override
 public final MessageHandlerResponse handle(final AjahMimeMessage message)
     throws MessagingException {
   AjahUtils.requireParam(message, "message");
   AjahUtils.requireParam(message.getId(), "message.id");
   final MessageHandlerResponse response = innerHandle(message);
   for (final MessageHandler messageHandler : this.messageHandlers.getList(response.getResult())) {
     messageHandler.handle(message);
   }
   return null;
 }
 @Override
 public void run() {
   if (handler != null) {
     Map<String, Integer> topicMap = new HashMap<String, Integer>();
     topicMap.put(topic, new Integer(1));
     Map<String, List<KafkaStream<byte[], byte[]>>> streamMap =
         consumer.createMessageStreams(topicMap);
     KafkaStream<byte[], byte[]> stream = streamMap.get(topic).get(0);
     ConsumerIterator<byte[], byte[]> it = stream.iterator();
     while (it.hasNext()) {
       handler.handle(new String(it.next().message()));
     }
   }
 }