[ https://issues.apache.org/jira/browse/KAFKA-2898?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Guillaume Grossetie updated KAFKA-2898: --------------------------------------- Description: 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()") was: 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" or "value.serializer.encoding" configs should also be ignored because they are used in StringSerializer (using a copy of the config: "config.originals()") > 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 > 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)