[ https://issues.apache.org/jira/browse/KAFKA-2898?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lee Dongjin reassigned KAFKA-2898: ---------------------------------- Assignee: Lee Dongjin > Kafka producer config incorrectly warns that serializer.* isn't a known config > ------------------------------------------------------------------------------ > > Key: KAFKA-2898 > URL: https://issues.apache.org/jira/browse/KAFKA-2898 > Project: Kafka > Issue Type: Improvement > Affects Versions: 0.8.2.1 > Reporter: Guillaume Grossetie > Assignee: Lee Dongjin > Priority: Minor > > When using "serializer.encoding", "key.serializer.encoding" or > "value.serializer.encoding" to configure the encoding of the serializer, > Kafka producer incorrectly warns: > {code} > config.put("serializer.encoding", serializerEncoding); > config.put("key.serializer.encoding", keySerializerEncoding); > config.put("value.serializer.encoding", valueSerializerEncoding); > new KafkaProducer<>(config); > {code} > {code} > [main] WARN o.a.k.c.producer.ProducerConfig - The configuration > serializer.encoding = null was supplied but isn't a known config. > [main] WARN o.a.k.c.producer.ProducerConfig - The configuration > value.serializer.encoding = null was supplied but isn't a known config. > [main] WARN o.a.k.c.producer.ProducerConfig - The configuration > key.serializer.encoding = null was supplied but isn't a known config. > {code} > With the following code I get: > {code} > Map<String, String> serializerConfig = new HashMap<>(); > serializerConfig.put("serializer.encoding", serializerEncoding); > serializerConfig.put("key.serializer.encoding", keySerializerEncoding); > serializerConfig.put("value.serializer.encoding", valueSerializerEncoding); > StringSerializer keySerializer = new StringSerializer(); > keySerializer.configure(serializerConfig, true); > StringSerializer valueSerializer = new StringSerializer(); > valueSerializer.configure(serializerConfig, false); > new KafkaProducer<>(config, keySerializer, valueSerializer); > {code} > {code} > [main] WARN o.a.k.c.producer.ProducerConfig - The configuration > value.serializer = class > org.apache.kafka.common.serialization.StringSerializer was supplied but isn't > a known config. > [main] WARN o.a.k.c.producer.ProducerConfig - The configuration > key.serializer = class org.apache.kafka.common.serialization.StringSerializer > was supplied but isn't a known config. > {code} > However I think this case is now fixed in master because someone has added: > {code} > config.ignore(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG); > config.ignore(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG); > {code} > I think "serializer.encoding", "key.serializer.encoding" and > "value.serializer.encoding" configs should also be ignored because they are > used in StringSerializer (using a copy of the config: "config.originals()") -- This message was sent by Atlassian JIRA (v6.3.4#6332)