Michael Drogalis created KAFKA-8297:
---------------------------------------
Summary: Kafka Streams ConsumerRecordFactory yields difficult
compiler error about generics
Key: KAFKA-8297
URL: https://issues.apache.org/jira/browse/KAFKA-8297
Project: Kafka
Issue Type: Bug
Components: streams
Reporter: Michael Drogalis
When using the ConsumerRecordFactory, it's convenient to specify a default
topic to create records with:
{code:java}
ConsumerRecordFactory<String, User> inputFactory = new
ConsumerRecordFactory<>(inputTopic, keySerializer, valueSerializer);
{code}
However, when the factory is used to create a record with a String key:
{code:java}
inputFactory.create("any string", user)
{code}
Compilation fails with the following warning:
{code:java}
Ambiguous method call. Both:
create(String, User) in ConsumerRecordFactory and
create(String, User) in ConsumerRecordFactory match
{code}
At first glance, this is a really confusing error to see during compilation.
What's happening is that there are two clashing signatures for `create`:
create(K, V) and create(String, V). The latter signature represents a topic
name.
It seems like fixing this would require breaking the existing interface. This
is a really opaque problem to hit though, and it would be great if we could
avoid having users encounter this.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)