This happens when one of the following is true.

1. You have multiple queues and one host crashes. The new host is
brougt back to life but the offset in zookeeper is wrong. So it will
throw an offset exception.

2. Similarly when you unmount the drive where kafka is writing to.

This patch tries to ask kafka what the latest offset is in this case.
If none is return, it uses zero and assumes the queue is empty. This
has to be the case, otherwise kafka would return a different offset
that is not zero.

This will at most replay a whole offset block. I think they are at
512M. That's just how kafka handles offsets. It will give you the
latest offset by chunk where chunks are of 512M in size.
only version 0.8.2
there is an scala api incompatibility...
the dependency on the kafka release download page is 2.8.0 when you
look at the sbt file that comes package with it. so I set this
dependency explicitly

This is a working branch for 0.8.2
Finishing the patch
Changes I forgot to commit that fix the offset exception. TODO(use a
different method other than size to trigger the offset exception. Get
last error)
switching project over to use the twitters build of kafka libs based off of scala 2.9.2.
Merge pull request #1 from fanatoly/scala_2_9_2_compat

storm-kafka on scala 2.9.2
added handling for IO Exceptions when talking to Kafka. Also changed the way that Kafka error codes are detected. IOExceptions are intentionally not handled in the constructor. Making the constructor exception safe might require more refactoring.
bumping minor version for storm-kafka
Merge pull request #2 from fanatoly/error_handling_kafka

Error handling kafka with detecting error codes
another error handling bit
Merge pull request #3 from fanatoly/error_handling_kafka

another error handling bit
merge conflicts offsets_patch_0.8.2 with master