Michael created KAFKA-10741:
-------------------------------
Summary: Kafka ConsumerProperties.addDeserializerToConfig breaks
hirarchical property resolution.
Key: KAFKA-10741
URL: https://issues.apache.org/jira/browse/KAFKA-10741
Project: Kafka
Issue Type: Bug
Components: consumer
Affects Versions: 2.5.1, 2.6.0, 2.5.0
Reporter: Michael
{{The Method "addDeserializerToConfig(...)" creates a new Property-Object and
attempts to preserve the set-up properties.}}
{{For this it calls _putAll(Map<?, ?> t)_ and by this copies all properties
that are part of the old properties object in it's Map-Representation.}}
{code:java}
public static Properties addDeserializerToConfig(Properties properties,
Deserializer<?>
keyDeserializer,
Deserializer<?>
valueDeserializer) {
Properties newProperties = new Properties();
newProperties.putAll(properties);
if (keyDeserializer != null)
newProperties.put(KEY_DESERIALIZER_CLASS_CONFIG,
keyDeserializer.getClass().getName());
if (valueDeserializer != null)
newProperties.put(VALUE_DESERIALIZER_CLASS_CONFIG,
valueDeserializer.getClass().getName());
return newProperties;
}
{code}
{{If you utilize the Properties hirarchical structure, and create Properties
like this:}}
{code:java}
public static Properties defaultProperties = createDefaultProperties();
public Properties createProperties(String someKey, String someValue) {
Properties newProperties(defaultProperties);
properties.addProperty(someKey, someValue);
}{code}
the properties set in the defaultProperties are stored in the Properties-Member
_defaults_ and are not part of the Map-Representation.
{{Thus, if only the Map-Representation is copied, the _defaults_ are lost.}}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)