Description
In <3.6.0-rc0, duplicates of a plugin would be shown if it subclassed multiple interfaces. For example:
{ "class": "org.apache.kafka.connect.storage.StringConverter", "type": "converter" }, { "class": "org.apache.kafka.connect.storage.StringConverter", "type": "converter" },
In 3.6.0-rc0, there are many more listings for the same plugin. For example:
{ "class": "org.apache.kafka.connect.storage.StringConverter", "type": "converter" }, { "class": "org.apache.kafka.connect.storage.StringConverter", "type": "converter" }, { "class": "org.apache.kafka.connect.storage.StringConverter", "type": "converter" }, { "class": "org.apache.kafka.connect.storage.StringConverter", "type": "converter" }, { "class": "org.apache.kafka.connect.storage.StringConverter", "type": "converter" }, { "class": "org.apache.kafka.connect.storage.StringConverter", "type": "converter", "version": "3.6.0" },
These duplicates appear to happen when a plugin with the same class name appears in multiple locations/classloaders.
When interpreting a connector configuration, only one of these plugins will be chosen, so only one is relevant to show to users. The REST API should only display the plugins which are eligible to be loaded, and hide the duplicates.
Attachments
Issue Links
- is caused by
-
KAFKA-15244 Connect PluginType.from(Class) result is incorrect when subclassing multiple plugin interfaces
- Resolved