[ https://issues.apache.org/jira/browse/KAFKA-3563?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15246540#comment-15246540 ]
ASF GitHub Bot commented on KAFKA-3563: --------------------------------------- Github user asfgit closed the pull request at: https://github.com/apache/kafka/pull/1226 > Maintain MessageAndMetadata constructor compatibility > ------------------------------------------------------ > > Key: KAFKA-3563 > URL: https://issues.apache.org/jira/browse/KAFKA-3563 > Project: Kafka > Issue Type: Improvement > Affects Versions: 0.10.0.0 > Reporter: Grant Henke > Assignee: Grant Henke > Fix For: 0.10.1.0 > > > The MessageAndMetadata constructor was changed to include timestamp > information as a part of KIP-32. Though the constructor may not be used in > general client usage, it may be used in unit tests or some advanced usage. We > should maintain compatibility if possible. > One example where the constructor is used is Apache Spark: > https://github.com/apache/spark/blob/master/external/kafka/src/main/scala/org/apache/spark/streaming/kafka/KafkaRDD.scala#L223-L225 > The old constructor was: > {code} > MessageAndMetadata[K, V](topic: String, > partition: Int, > private val rawMessage: Message, > offset: Long, > keyDecoder: Decoder[K], valueDecoder: Decoder[V]) > {code} > And after KIP-32 it is now: > {code} > MessageAndMetadata[K, V](topic: String, > partition: Int, > private val rawMessage: Message, > offset: Long, > timestamp: Long = Message.NoTimestamp, > timestampType: TimestampType = TimestampType.CREATE_TIME, > keyDecoder: Decoder[K], valueDecoder: Decoder[V]) > {code} > Even though _timestamp_ and _timestampType_ have defaults, if _keyDecoder_ > and _valueDecoder_ were not accessed by name, then the new constructor is not > backwards compatible. > We can fix compatibility by moving the _timestamp_ and _timestampType_ > parameters to the end of the constructor, or by providing a new constructor > without _timestamp_ and _timestampType_ that matches the old constructor. -- This message was sent by Atlassian JIRA (v6.3.4#6332)