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)