[ https://issues.apache.org/jira/browse/KAFKA-686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13598869#comment-13598869 ]
Phil commented on KAFKA-686: ---------------------------- Patch here using git diff diff --git a/core/src/main/scala/kafka/utils/ZkUtils.scala b/core/src/main/scala/kafka/utils/ZkUtils.scala index c6119d9..90ee2d0 100644 --- a/core/src/main/scala/kafka/utils/ZkUtils.scala +++ b/core/src/main/scala/kafka/utils/ZkUtils.scala @@ -419,7 +419,12 @@ object ZkUtils extends Logging { def readDataMaybeNull(client: ZkClient, path: String): (Option[String], Stat) = { val stat: Stat = new Stat() val dataAndStat = try { - (Some(client.readData(path, stat)), stat) + val data: String = client.readData(path,stat) + if(data != null) { + (Some(client.readData(path, stat)), stat) + } else { + (None,stat) + } } catch { case e: ZkNoNodeException => (None, stat) > 0.8 Kafka broker should give a better error message when running against 0.7 > zookeeper > -------------------------------------------------------------------------------------- > > Key: KAFKA-686 > URL: https://issues.apache.org/jira/browse/KAFKA-686 > Project: Kafka > Issue Type: Bug > Affects Versions: 0.8 > Reporter: Jay Kreps > Labels: newbie, patch > Fix For: 0.8 > > > People will not know that the zookeeper paths are not compatible. When you > try to start the 0.8 broker pointed at a 0.7 zookeeper you get a > NullPointerException. We should detect this and give a more sane error. > Error: > kafka.common.KafkaException: Can't parse json string: null > at kafka.utils.Json$.liftedTree1$1(Json.scala:20) > at kafka.utils.Json$.parseFull(Json.scala:16) > at > kafka.utils.ZkUtils$$anonfun$getReplicaAssignmentForTopics$2.apply(ZkUtils.scala:498) > at > kafka.utils.ZkUtils$$anonfun$getReplicaAssignmentForTopics$2.apply(ZkUtils.scala:494) > at > scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61) > at scala.collection.immutable.List.foreach(List.scala:45) > at > kafka.utils.ZkUtils$.getReplicaAssignmentForTopics(ZkUtils.scala:494) > at > kafka.controller.KafkaController.initializeControllerContext(KafkaController.scala:446) > at > kafka.controller.KafkaController.onControllerFailover(KafkaController.scala:220) > at > kafka.controller.KafkaController$$anonfun$1.apply$mcV$sp(KafkaController.scala:85) > at > kafka.server.ZookeeperLeaderElector.elect(ZookeeperLeaderElector.scala:53) > at > kafka.server.ZookeeperLeaderElector.startup(ZookeeperLeaderElector.scala:43) > at kafka.controller.KafkaController.startup(KafkaController.scala:381) > at kafka.server.KafkaServer.startup(KafkaServer.scala:90) > at > kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:34) > at kafka.Kafka$.main(Kafka.scala:46) > at kafka.Kafka.main(Kafka.scala) > Caused by: java.lang.NullPointerException > at > scala.util.parsing.combinator.lexical.Scanners$Scanner.<init>(Scanners.scala:52) > at scala.util.parsing.json.JSON$.parseRaw(JSON.scala:71) > at scala.util.parsing.json.JSON$.parseFull(JSON.scala:85) > at kafka.utils.Json$.liftedTree1$1(Json.scala:17) > ... 16 more -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira