From 70312665d6787a1d6c6838aa5ca33fbea4a01ac5 Mon Sep 17 00:00:00 2001 From: David Arthur Date: Fri, 22 Feb 2013 22:48:30 -0500 Subject: [PATCH] KAFKA-771 Add null check to offset metadata --- core/src/main/scala/kafka/server/KafkaApis.scala | 2 +- .../scala/unit/kafka/server/OffsetCommitTest.scala | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletions(-) diff --git a/core/src/main/scala/kafka/server/KafkaApis.scala b/core/src/main/scala/kafka/server/KafkaApis.scala index 24f1e62..5c5dbc9 100644 --- a/core/src/main/scala/kafka/server/KafkaApis.scala +++ b/core/src/main/scala/kafka/server/KafkaApis.scala @@ -476,7 +476,7 @@ class KafkaApis(val requestChannel: RequestChannel, val responseInfo = offsetCommitRequest.requestInfo.map( t => { val topicDirs = new ZKGroupTopicDirs(offsetCommitRequest.groupId, t._1.topic) try { - if(t._2.metadata.length > config.offsetMetadataMaxSize) { + if(t._2.metadata != null && t._2.metadata.length > config.offsetMetadataMaxSize) { (t._1, ErrorMapping.OffsetMetadataTooLargeCode) } else { ZkUtils.updatePersistentPath(zkClient, topicDirs.consumerOffsetDir + "/" + diff --git a/core/src/test/scala/unit/kafka/server/OffsetCommitTest.scala b/core/src/test/scala/unit/kafka/server/OffsetCommitTest.scala index 48d5647..6989c95 100644 --- a/core/src/test/scala/unit/kafka/server/OffsetCommitTest.scala +++ b/core/src/test/scala/unit/kafka/server/OffsetCommitTest.scala @@ -171,4 +171,14 @@ class OffsetCommitTest extends JUnit3Suite with ZooKeeperTestHarness { } + @Test + def testNullMetadata() { + val topicAndPartition = TopicAndPartition("null-metadata", 0) + val commitRequest = OffsetCommitRequest("test-group", Map(topicAndPartition -> OffsetMetadataAndError( + offset=42L, + metadata=null + ))) + val commitResponse = simpleConsumer.commitOffsets(commitRequest) + assertEquals(ErrorMapping.NoError, commitResponse.requestInfo.get(topicAndPartition).get) + } } -- 1.7.5.4