[ https://issues.apache.org/jira/browse/FLINK-10235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16601940#comment-16601940 ]
ASF GitHub Bot commented on FLINK-10235: ---------------------------------------- zentol opened a new pull request #6653: [FLINK-10235][kafka] Explicitly cast custom partitioner classes URL: https://github.com/apache/flink/pull/6653 This PR fixes a jdk9 incompatibility regarding generics. The method compilation fails on java 9 since the CONNECTOR_SINK_PARTITIONER_VALUE_CUSTOM branch returns an Optional<Class<? extends FlinkKafkaPartitioner>>, but the method requires a Optional<FlinkKafkaPartitioner<Row>>. The compiler obviously cannot infer that the instantiated partitioner is always a `FlinkKafkaPartitioner<Row>` (since it technically could work on any type), so we have to help a bit. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > KafkaTableSourceSinkFactoryBase#getFlinkKafkaPartitioner does not compile > with Java 9 > ------------------------------------------------------------------------------------- > > Key: FLINK-10235 > URL: https://issues.apache.org/jira/browse/FLINK-10235 > Project: Flink > Issue Type: Sub-task > Components: Table API & SQL > Affects Versions: 1.7.0 > Reporter: Chesnay Schepler > Assignee: Chesnay Schepler > Priority: Major > Labels: pull-request-available > Fix For: 1.7.0 > > > The method compilation fails on java 9. The problem is that the > {{CONNECTOR_SINK_PARTITIONER_VALUE_CUSTOM}} branch returns an > {{Optional<Class<? extends FlinkKafkaPartitioner>>}}, but the method requires > a {{Optional<FlinkKafkaPartitioner<Row>>}}. > {code} > private Optional<FlinkKafkaPartitioner<Row>> > getFlinkKafkaPartitioner(DescriptorProperties descriptorProperties) { > return descriptorProperties > .getOptionalString(CONNECTOR_SINK_PARTITIONER) > .flatMap((String partitionerString) -> { > switch (partitionerString) { > case CONNECTOR_SINK_PARTITIONER_VALUE_FIXED: > return Optional.of(new > FlinkFixedPartitioner<>()); > case > CONNECTOR_SINK_PARTITIONER_VALUE_ROUND_ROBIN: > return Optional.empty(); > case CONNECTOR_SINK_PARTITIONER_VALUE_CUSTOM: > final Class<? extends > FlinkKafkaPartitioner> partitionerClass = > > descriptorProperties.getClass(CONNECTOR_SINK_PARTITIONER_CLASS, > FlinkKafkaPartitioner.class); > return > Optional.of(InstantiationUtil.instantiate(partitionerClass)); > default: > throw new TableException("Unsupported > sink partitioner. Validator should have checked that."); > } > }); > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)